我有一个包含多个部分的文本文件,我想打印其中一个部分.
部分文件看起来像
3. line 3
4. line 4
## Screenshots ##
1. line 1
2. line 2
3. line 3
4. line 4
## Changelog ##
3. line 3
4. line 4
Run Code Online (Sandbox Code Playgroud)
从这里我想要检索之间的所有行## Screenshots ##和下一部分的开始.下一节是## Changelog ##,但它可以是任何东西.因此,我们唯一可以依赖的是它将从一开始##.
从另一个线程,我发现以下代码
sed -e "H;/${pattern}/h" -e '$g;$!d' $file
Run Code Online (Sandbox Code Playgroud)
我修改为
sed -e "H;/## Screenshots ##/h" -e '$g;$!d' readme.md
Run Code Online (Sandbox Code Playgroud)
现在,它检索从中开始的所有行## Screenshots ##,但它会打印所有行直到文件末尾.
然后我把它传递到另一个sed像
sed -e "H;/## Screenshots ##/h" -e '$g;$!d' readme.md | sed "/^##/q" …Run Code Online (Sandbox Code Playgroud)