我有一个非常大的文本文件,其中包含类似于以下内容的数据:
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 / IN 1 / Z“/ Fe破裂/ NN和/ CC new / JJ开始/ NN世纪/ NN ./Fp
提前感谢您的帮助
答案 0 :(得分:1)
grep -E -v '^======>match found:.+$' file.txt
-E
打开扩展正则表达式,-v
取消输出,即打印所有不匹配的行。
答案 1 :(得分:1)
Sed是你的朋友
sed -i '/^======>match found:/d' largefilename.txt
将删除所有以======>match found:
注意,-i
开关意味着largefilename.txt
将被修改而不是打印到stdout,这应该比使用grep更有效。