相关疑难解决方法(0)

使用sed在两个正则表达式之间打印行

我有一个包含多个部分的文本文件,我想打印其中一个部分.

部分文件看起来像

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)

unix sed

12
推荐指数
3
解决办法
1万
查看次数

标签 统计

sed ×1

unix ×1