linux – 从bash输出中排除一个字符串

我现在正在做一个项目.在这个项目中,由于某些原因,我需要从与模式匹配的输出(或文件)中排除第一个字符串.困难在于我只需要排除一个字符串,只需从流中排出第一个字符串.
例如,如果我有:

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 }'

相关文章

/etc/sysctl.conf这个目录主要是配置一些系统信息,/etc/sys...
1.作用 useradd或adduser命令用来建立用户帐号和创建用户的起...
它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅...
不管是我们在安装软件还是监测软件的使用性能,我们都要随时...
装好Tomcat7后,发现除了本机能访问外界访问不了,岂有此理。...
修改防火墙配置需要修改 /etc/sysconfig/iptables 这个文件,...