我在perl中有一个文件,其中包含以下内容
abc
text1
text2
text3
abc
text4
text5
abc
abc
最终输出:
abc
text1
text2
text3
text4
text5
我想使用perl one liner或脚本来保留第一个abc并删除其余部分。
在我的脚本中,我使用模式匹配运算符m?/abc/
来查找第一个模式,但无法找到删除其余模式的方法。请帮我一样
答案 0 :(得分:3)
假设您要删除包含第二次及以后出现的abc
的整行:
perl -ne 'print if !/abc/ || !$n++' < infile > outfile
如果您要删除包含abc
而不包含的行,请将/abc/
更改为/^abc$/
。