Добавление входного файла с awk после шаблона (цикличное выполнение?)

[

] Вы можете сделать это полностью с помощью [] POSIX-специфических функций [] join[][]. [

] [

join -t, csv[12] | join -t, - csv3

] [

]Используя ваши []csv1[], []csv2[] и []csv3[] файлы в том виде, в котором они были размещены, это дает: [

] [

$ join -t, csv[12] | join -t, - csv3
2,qwe,rty,2014-04-03,j,k,2014-04-01,a,s,d,f,g,2014-04-01
3,zxc,cvb,2014-04-05,a,s,2014-04-04,d,f,g,h,j,2014-04-06

]

1
04.03.2015, 13:08
2 ответа

Спецификация может помочь

awk '/PATTERN/{print;getline;while(!/lineN/){$(NF+1)="  1";print;getline}}1'

Или продлить Idea @janis :

awk '/lineN/{f=0}f{$(NF+1)="  1"}/PATTERN/{f=1}1'
1
27.01.2020, 23:37

Вы говорите, что только литеральные линии «XYZ» после шаблона должны быть заменены.

awk '
  /PATTERN/ { f=1 }
  f && /x y z/ { print $0, 1 ; next }
  { print }
'

Если это линии с тремя произвольными полями, затем используют

awk '
  /PATTERN/ { f=1 }
  f && NF==3 { print $0, 1 ; next }
  { print }
'
1
27.01.2020, 23:37

Теги

Похожие вопросы