如何将模式之间的行反转到另一个文件中

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反转的段落。但是段落的顺序应该保持不变。

jim*_*mij 5

如果只有#块的开头,那么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)