我现在正在做一个项目。在这个项目中,由于某些原因,我需要从与模式匹配的输出(或文件)中排除第一个字符串。困难在于我只需要排除一个字符串,即流中的第一个字符串。
例如,如果我有:
1 abc
2 qwerty
3 open
4 abc
5 talk
一些脚本工作后我应该有这个:
2 qwerty
3 open
4 abc
5 talk
注意:我对单词之前的数字一无所知,因此我无法使用有关它们的知识来过滤输出。
我用 grep 编写了一个小脚本,但它会删除与模式匹配的每个字符串:
'some program' | grep -v "abc"
阅读有关 awk、sed 等的信息,但不明白是否可以解决我的问题。
有什么帮助,谢谢。
使用 awk:
some program | awk '{ if (/abc/ && !seen) { seen = 1 } else print }'
或者,仅使用过滤器:
some program | awk '!/abc/ || seen { print } /abc/ && !seen { seen = 1 }'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)