linux – 从bash输出中排除一个字符串
发布时间:2020-12-14 01:20:39 所属栏目:Linux 来源:网络整理
导读:我现在正在做一个项目.在这个项目中,由于某些原因,我需要从与模式匹配的输出(或文件)中排除第一个字符串.困难在于我只需要排除一个字符串,只需从流中排出第一个字符串. 例如,如果我有: 1 abc2 qwerty3 open4 abc5 talk 一些脚本工作后,我应该有这个: 2 qwe
我现在正在做一个项目.在这个项目中,由于某些原因,我需要从与模式匹配的输出(或文件)中排除第一个字符串.困难在于我只需要排除一个字符串,只需从流中排出第一个字符串.
例如,如果我有: 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 }' (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |