使用grep匹配,并在大chunck文字的擦除模式(Use grep to match and er

2019-10-29 14:55发布

我有一个包含类似于下面的数据非常大的文本文件:

     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为/ IN 1 / Z教堂/ NP历史学家/ NN / Fc的AS / 1 / Z“/铁破裂/ NN和/ CC新/ JJ开始/ NN世纪/ NN ./Fp

预先感谢您的帮助

Answer 1:

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

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



Answer 2:

SED是你的朋友

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

将删除开头的所有行======>match found:

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



文章来源: Use grep to match and erase a pattern in a large chunck of text
标签: regex grep