微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

unix – 多个grep搜索/忽略模式

我通常使用以下流水线来为特定的搜索字符串进行grep,但忽略某些其他模式:
grep -Ri 64 src/install/ | grep -v \.svn | grep -v "file"| grep -v "2\.5" | grep -v "2\.6"

这可以简洁地实现吗?我使用GNU grep 2.5.3。

只需将未经过滤的输出输出一个单一的grep实例中,并使用一个扩展的正则表达式来声明你想要忽略的内容
grep -Ri 64 src/install/ | grep -v -E '(\.svn|file|2\.5|2\.6)'

编辑:要搜索多个文件可能尝试

find ./src/install -type f -print |\
    grep -v -E '(\.svn|file|2\.5|2\.6)' | xargs grep -i 64

编辑:哦我忘了添加简单的技巧来停止多次使用grep实例,即

ps -ef | grep something | grep -v grep

替换

ps -ef | grep "[s]omething"

消除了第二个grep的需要。

原文地址:https://www.jb51.cc/bash/388186.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐