从数字1开始,如何在一个段落中的每一行前面添加相同的数字和空格,对于数字2和下一个段落相同.段落用空行分隔,文本文件中大约有50个段落,每个段落有2到30行.
这里
有一些文字更多的数字和文字
这里更多的文字
,这里是更多的文字
数量文本
1这里的一些文字
1个更多的数字和文字
这里有
2 个以上的文字2,这里有更多的文字
2个数字文字
这里的技巧是将段落视为记录,将行视为字段.
awk 'BEGIN { RS="\n\n"; FS="\n" } { for (i = 1; i <= NF; i++) print FNR, $i; print "" }' < in > out
新年快乐!
另一种awk
选择,计算空行,没有循环.
$ awk '/^$/{c++;print;next} {print c+1, $0}' text 1 some text here 1 more numbers and text 2 more text here 2 and here is more text 2 number text
这样可以保留空行数
$ awk '/^$/{e=1;print;next} e{c++} {print c+1,$0;e=0}' text2 1 some text here 1 more numbers and text 2 more text here 2 and here is more text 2 number text