删除两个字符串之间的所有行
在 sh shell 脚本中。
给定文本文件中的数据:
string1
string2 gibberish
gibberish
string3 gibberish
string4
如何使用 awk 或 sed 删除 string2
(包括)和 string3
(不包括 string3
)之间的所有行)?
最终得到:
string1
string3
string4
In a sh shell script.
Given data in a text file:
string1
string2 gibberish
gibberish
string3 gibberish
string4
How could you use awk or sed to remove all lines between string2
(inclusive) and string3
(not including string3
)?
to end up with:
string1
string3
string4
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
string1、string2、string3 等是否分别位于不同的行?
在这种情况下,您可以使用 awk:
或 sed:
Are string1, string2,string3, etc. each on different lines?
In that case, you can use awk:
or sed:
你可以试试这个。 “string2”之前的任何内容都不会被删除。
输出
you can try this. Anything before "string2" will not be deleted.
output
以下内容将在 sed 中运行
假设我们匹配 string2 之后第一次出现 string3,则
The following will work in sed
presuming we are matching up to the first occurrence of string3 after string2
下面是一个示例正则表达式替换:
它将删除从
string2
到但不包括string3
的所有内容。Here's a sample regex substitution:
Which will remove everything from
string2
up to but not includingstring3
.