gpt4 book ai didi

Linux:如何使用 sed 删除从一个模式开始到另一个模式的行

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:52:55 25 4
gpt4 key购买 nike

我知道如何在 sed 的帮助下删除某些模式。

这是一个例子:

exampleFile

One Two Three Four
Five Six Seven
Eight One Nine Four

如果我应用以下内容,所有“1”都将被删除。

sed 's/\<One\>//g' exampleFile

但是如果我想删除从一到四的所有内容怎么办?我正在寻找的输出是:

Five Six Seven
Eight

我想写下面的,但是不行:

sed 's/\<One*Four\>//g' exampleFile

(我认为通过放置一个*,它应该意味着删除介于一和四之间的所有内容,包括一和四)...我的请求甚至可以在一行中吗?

谢谢!

最佳答案

在正则表达式中,. 表示“任何字符”,* 表示“前一个元素的任意数量”,因此您可以:

sed 's/\<One.*Four\>//g' exampleFile

您可以进一步添加适当的尖括号以确保 One 和 Four 必须是单独的词:

sed 's/\<One\>.*\<Four\>//g' exampleFile

关于Linux:如何使用 sed 删除从一个模式开始到另一个模式的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26557565/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com