【发布时间】:2021-12-01 05:03:49
【问题描述】:
我有这个文件
~/ % cat t
---
abc
def DEF
ghi GHI
---
123
456
我想提取三个破折号之间的内容,所以我尝试
sed -En '{N; /^---\s{5}\w+/,/^---/p}' t
即3 个破折号后跟 5 个空格,包括换行符,后跟一个或多个单词字符,并以另一组三个破折号结尾。这给了我这个输出
~/ % sed -En '{N; /^---\s{5}\w+/,/^---/p}' t
---
abc
def DEF
ghi GHI
---
123
我不想要带有“123”的行。为什么我会这样,我该如何调整我的表情来摆脱它? [编辑]:在表达式中匹配前三个破折号后的四个缩进空格很重要。
【问题讨论】:
-
您需要在输出中包含
---行吗?还是没有必要? -
我不认为这是绝对必要的,尽管保留最后一个可能会很好,因为我需要一些分隔符来分割文件中的字符串。
-
这些命令都不起作用。它们也都匹配最后三个破折号后的“123”和“456”行。