47

我正在尝试从包含不紧跟“H”的字母“T”的文本文件中自动删除所有行。我一直在使用 grep 并将输出发送到另一个文件,但我想不出可以帮助我做到这一点的神奇正则表达式。

如果 grep 不是正确的工具,我不介意使用 awk、sed 或其他一些 linux 工具。

4

2 回答 2

93

那应该这样做:

grep -v 'T[^H]'

-v : 打印不匹配的行

[^H]:匹配除 H 以外的任何字符

于 2012-04-17T10:49:30.010 回答
14

你可以做:

grep -v 'T[^H]' input

-v是 grep 的反向匹配选项,它不会列出与模式匹配的行。

使用的正则表达式T[^H]匹配任何作为 aT后跟除 a 之外的任何字符的行H

于 2012-04-17T10:49:26.097 回答