0

我有一个非常大的文本文件,其中包含类似于以下内容的数据:

     but/CC as/IN 1/Z church/NP historian/NN/Fc 
     as/IN 1/Z "/Fe rupture/NN and/CC new/JJ beginning/NN century/NN ./Fp
    ======>match found: \#\#[a-z]+\/NN\#\#
    ======>match found: be\/V[A-Z]+(\s[.]{0,10})?\#\#
    ======>match found: \#\#\sof\/IN

我想使用(linux)终端命令grep匹配并删除所有以以下开头的行:

======>找到匹配项:

并以换行符结尾。

因此,根据前面的示例,我想运行 grep 并获得以下输出

但是/CC as/IN 1/Z 教会/NP historian/NN/Fc as/IN 1/Z"/Fe 破裂/NN 和/CC 新/JJ 始/NN 世纪/NN./Fp

预先感谢您的帮助

4

2 回答 2

1
grep -E -v '^======>match found:.+$' file.txt

-E打开扩展正则表达式,并-v否定输出,即打印所有不匹配的行。

于 2013-01-23T15:23:08.187 回答
1

Sed 是你的朋友

sed -i '/^======>match found:/d' largefilename.txt

将删除所有以======>match found:

注意,-i开关意味着largefilename.txt将被修改而不是打印到stdout,这应该比使用grep更有效。

于 2013-01-23T15:24:09.457 回答