Я хотел бы найти строку, содержащую «автора» и заменить на «s #», а затем распечатать остаток строки.Затем распечатайте между «data» и «end», и, пожалуйста, взгляните на код и расскажите, как правильно использовать оператор внутри команды awk.
#!/bin/bash
defdatano=6
for datano in $(eval seq 0 1 $(($defdatano - 1)))
do
{ echo $datano
awk '/#DATA'$(($datano - 1))'/,/#END/{print;next}; /#AUTHORS/ { sub ("#AUTHORS" , "s'$datano' "); print}' DataInput >> DataOutput }
done
Ввод:
REF
TDC
AUTHORS A1
REF
OLD
REF
DATA1
1
2
3
4
5
END
REF
OEF
AUTHORS A2
REF
REF
DATA2
6
7
8
9
10
END
Желаемый вывод:
s0 A1
DATA1
1
2
3
4
5
END
s1 A2
DATA2
6
7
8
9
10
END