Linux xargs grep zgrep命令

Linux xargs grep zgrep命令,第1张

xargs 是给命令传递参数的一个过滤器,也是组合多个命令的一个工具,它能够捕获一个命令的输出,然后传递给另外一个命令。之所以会用到这个命令,关键是由于 很多命令不支持管道来传递参数 ,而日常工作中就有这个需要,所以就有了 xargs 命令。

我们经常会用grep命令在文件中查找需要的内容,比如现在一个文件夹里面有9个文件,有三种格式txt, csv和gz压缩文件。

123里面存的内容都一样为

456里面存的内容也一样为

789里面存的都是

如果我现在要从所有的文件里面找“apple”

我会得到下面的结果,你会发现 grep不能从gz文件中查找内容

zgrep 这个命令可以解决这个问题,这样就不需要先解压然后再去查找了

会得到如下结果,显示了所有文件格式中找到的“apple”,并且显示了匹配的行号

如果只想在符合某种特征的文件中找你感兴趣的内容呢?比如在文件名中包含123的文件中查找“apple”。这时候就需要管道了,你需要先找到这样的文件然后再从中找“apple”

第一步找到名字中包含123的文件

会得到文件名中包含123的所有文件

第二步查找“apple”

然后我们再来从中找“apple”,你会发现下面这条命令不work,你啥都得不到

这就是我们开篇提到的, 很多命令不支持管道来传递参数。 这个时候 xargs 就派上用场了

同时用上 zgrep ,这样gz文件也一起找了

那么,如果我们想从某一种特定格式的文件中(比如csv文件)找特定的内容该怎么做呢?大家应该能触类旁通,举一反三了吧!

Linux xargs grep zgrep命令​

awk是linux下强大的文本处理工具

xargs是linux下一个常用命令,用于将参数列表打散

这两个命令结合用来批量结束进程:

ps -ef | grep nsq | grep -v grep | awk '{print $2}' | xargs kill #杀掉所有nsq相关进程

awk是什么的缩写?看这里:

https://kb.iu.edu/d/abnd


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/7150519.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-02
下一篇 2023-04-02

发表评论

登录后才能评论

评论列表(0条)

保存