vin*_*ini 3 sed awk text-processing
我在输入文件中有以下内容
#Start para
0 hello dq
1 world dq
2 welcomes dq
3 you dq
#Start para
0 how tq
1 are tq
2 you tq
#Start para
0 say dq
1 hello dq
2 to dq
3 the dq
4 world dq
Run Code Online (Sandbox Code Playgroud)
我希望这指向另一个这样的文件
#Start para
3 you dq
2 welcomes dq
1 world dq
0 hello dq
#Start para
2 you tq
1 are tq
0 how tq
#Start para
4 world dq
3 the dq
2 to dq
1 hello dq
0 say dq
Run Code Online (Sandbox Code Playgroud)
我如何使用sed
或来做到这一点awk
?基本上我想要#Start para
反转的段落。但是段落的顺序应该保持不变。
如果只有#
块的开头,那么awk
你可以尝试
$ awk -F'\n' 'BEGIN{RS="#"}NR>1{print "#"$1;for(i=NF-1;i>1;i--)print $i}' file
Run Code Online (Sandbox Code Playgroud)
结果:
#Start para
3 you dq
2 welcomes dq
1 world dq
0 hello dq
#Start para
2 you tq
1 are tq
0 how tq
#Start para
4 world dq
3 the dq
2 to dq
1 hello dq
0 say dq
Run Code Online (Sandbox Code Playgroud)