Linux查询包括x字段,同时不包括y字段的文件(或者包括x同时包括y)

有两种写法 各有优劣

  • grep -i -l 'x' -r /home/test |xargs grep -iv 'y' | grep -L '\.git:'| grep -iv '\.pack:'|grep -iv '\.map:' | /usr/bin/nkf | tee ~/srcGrepResult.123>
  • grep -i -L 'y' -r /home/test |xargs grep -ie 'x' | grep -iv '\.git:'| grep -iv '\.pack:'|grep -iv '\.map:' | /usr/bin/nkf | tee ~/srcGrepResult.123
    如果是想要查询包括x同时也包括y的文件的话,如下
    grep -i -l 'x' -r /home/test |xargs grep -ie 'y' | grep -L '\.git:'| grep -iv '\.pack:'|grep -iv '\.map:' | /usr/bin/nkf | tee ~/srcGrepResult.123>

记录一下各个关键字代表的意义
grep:检索
-i:不区分大小写
-l:查询 符合条件的文件 ※关键点1:如果不加这个,查询结果会是“文件 关键字段”的形式,没法进行有 效的二次检索
-r:代表查询源是个路径 而不是文件
|:管道,将查询结果作为输入源传给后面的语句
xargs:代表从管道输入的查询源不是作为文字而是作为linux命令 ※关键点2:如果不加这个,第二次的查询会变成“把第一次查询的结果作为文本格式,再次查询”,我们的目的是“把第一次查询的结果作为文件路径,再次查询对应文件内的内容”
-L:代表不包含关键字的文件
-v:代表不包含关键字的行(这里没有xargs,是为了排除一些配置文件,加不加无所谓)
tee:把输出流写入到后记文件中
~:root目录/默认目录

第一种的优势:能正确且有效率的寻找到符合条件的文件
劣势:在搜索结果里不显示符合筛选条件的关键字语句

第二种的优势:能在搜索结果里显示符合条件的关键字语句
劣势:查询效率不如上一个,而且可能会出现文件名通过管道传给后续命令时报错“No such file or directory”,不过查询结果依然会正确的显示

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值