以外的所有行我试图自动从包含字母“T”的文本文件中删除所有行,紧接着不是紧跟着“H”。我一直在使用grep并将输出发送到另一个文件,但我无法想出能帮助我做到这一点的神奇正则表达式。Grep正则表达式:列出除
如果grep不是正确的工具,我不介意使用awk,sed或其他linux工具。
以外的所有行我试图自动从包含字母“T”的文本文件中删除所有行,紧接着不是紧跟着“H”。我一直在使用grep并将输出发送到另一个文件,但我无法想出能帮助我做到这一点的神奇正则表达式。Grep正则表达式:列出除
如果grep不是正确的工具,我不介意使用awk,sed或其他linux工具。
应该这样做:
grep -v 'T[^H]'
-v:打印线不匹配
[^ H]:匹配任何字符除H
你可以这样做:
grep -v 'T[^H]' input
-v
是grep的逆匹配选项没有列出匹配模式的行。
中使用的正则表达式是T[^H]
其中,作为一个T
随后通过除H
其他任何字符的任何行匹配。
的'两个实例*'是没有必要的,因为grep扫描整个行寻找匹配 – 2012-04-17 10:53:36
谢谢你的评论。编辑反映这一点。 – byrondrossos 2012-04-17 13:35:20