我有一个日志文件,我正在尝试整理它以使用里面的一些数据。 我想使用类似sed 's/foo//g'
的东西,除了我希望它删除从 foo 到下一个空格的所有内容,而不是匹配单词 foo。
我试过(没有成功(:
sed -e -- 's/(?<=foo)(.*)(?= )//g'
有什么想法吗?
我希望它删除从foo到下一个空格的所有内容。
您可以使用:
sed 's/foo[^[:blank:]]*//g' file
[^[:blank:]]
将匹配任何不是空格和制表符的字符。
我会这样做:
fooS*(?=s)
S
是非空格字符。它具有积极的前瞻,不属于匹配的一部分,因此您可以删除整个匹配项。演示。
编辑:实际上,使用单词边界更容易更好:
fooS*b
演示。现在foobar
也可以排在队伍的尽头。