awk - 使用sed删除除结束模式以外的行范围

标签 awk sed

input.txt:

blah1
blah2
start_pattern
blah3
blah4
blah5
end_pattern
blah6
blah7

我希望input.txt成为:
blah1
blah2
end_pattern
blah6
blah7

我尝试了以下方法,但是没有用。
sed -i "/start_pattern/, /end_pattern/{$!d}" input.txt

最佳答案

This question处理您的问题:

$ sed '/start_pattern/,/end_pattern/{/end_pattern/!d}' foo.txt
blah1
blah2
end_pattern
blah6
blah7

关于awk - 使用sed删除除结束模式以外的行范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16633308/

相关文章:

linux删除文件中的多行

python - 使用 sed [无重复] 删除两个行号(或模式)之间的行

bash 方法从 csv 文件中删除最后 4 列

regex - sed/awk 将代码片段从一个地方复制到同一文件中的另一个地方

for-loop - awk for 循环不搜索所有字段

linux - sed 或 awk 命令将两行合并为一行

linux - 如何仅删除某个目录下的重复文件(具有相同的校验和)

linux - Bash 匹配多行字符串并附加到上一行

awk - 如何在awk中按变量搜索

bash - bash 脚本中的 Sed 不工作 : But it works on command line