我正在尝试自动删除包含字母“T”的文本文件中的所有行,该字母不会立即跟随“H”。我一直在使用grep并将输出发送到另一个文件,但我无法想出能够帮助我做到这一点的魔法正则表达式。
如果grep不是正确使用的工具,我不介意使用awk,sed或其他一些linux工具。
答案 0 :(得分:66)
应该这样做:
grep -v 'T[^H]'
-v:打印行不匹配
[^ H]:匹配除H
之外的任何字符答案 1 :(得分:9)
你可以这样做:
grep -v 'T[^H]' input
-v
是grep的反向匹配选项,它不会列出与模式匹配的行。
使用的正则表达式是T[^H]
,它匹配T
后跟除H
以外的任何字符的所有行。