尝试去掉包含几个字符串的文件中的行,这非常有效:
awk '!/string1/string\ 2/' file.txt > file.filtered.txt
现在我需要在任何行的末尾添加一个包含“string3”的字符串。
是否可以添加包含换行符的字符串?
我尝试了这些迭代但没有效果:
awk '!/string1/string\ 2/string3\n/' file.txt > file.filtered.txt
和
awk '!/string1/string\ 2/string3\\n/' file.txt > file.filtered.txt
例如,我们要删除以此结尾的行:
YYYY-MM-DD HH:MM:SS criteria=value, criteria=value, tag=ABC
但不要删除以此结尾的行:
YYYY-MM-DD HH:MM:SS criteria=value, criteria=value, tag=ABC (123)
思想?
TIA, 唐
答案 0 :(得分:0)
首先要注意的是:你的例子毫无意义,并且会给你awk的各种错误(语法错误,"反斜杠不是最后一个字符在线","意外换行"等)。我认为你的意思是
awk '!/string1|string 2/'
会删除与string1
或string 2
匹配的行。这些只是普通的正则表达式,所以如果你只想匹配一行末尾的东西,请使用$
:
awk '!/string1|string 2|string3$/'
将删除包含string1
或string 2
或以string3
答案 1 :(得分:0)
谢谢,这完美无缺......你们大家都是无价之宝!
awk '!/string1|string\ 2|string3$/'