首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux xargs grep zgrep命令

xargs 是给命令传递参数一个过滤器,也是组合多个命令一个工具,它能够捕获一个命令输出,然后传递给另外一个命令。...之所以会用到这个命令,关键是由于很多命令不支持管道来传递参数,而日常工作中就有这个需要,所以就有了 xargs 命令。...我们经常会用grep命令在文件中查找需要内容,比如现在一个文件夹里面有9个文件,有三种格式txt, csv和gz压缩文件。 ? 123里面存内容都一样为 ? 456里面存内容也一样为 ?...如果我现在要从所有的文件里面找“apple” grep "apple" * 我会得到下面的结果,你会发现grep不能从gz文件中查找内容 123.csv:apple 123.txt:apple 456...这个时候xargs就派上用场了 find ./ -name "123*" | xargs zgrep -n "apple" 同时用上zgrep,这样gz文件也一起找了 ./123.txt.gz:1:apple

3.7K30

GNU和BSD版本xargs 分隔符不同

有目标执行,所以 1 “一些命令”我选用shell function来实现,在其中读了$1作为本次处理目标 2 “所有目标”我选用xargs;如果选Parallel还得额外安装 结果发现xargs在切分...“以空格为分隔符”字符串时候,GNU版本默认不切分,结果把 整个“含空格分隔字符串”传给函数,执行了一次,而函数里又选了$1作为本次执行 目标,其综合结果就是只对列表中第一个目标执行了一遍 更惨是我对比时候是在...Mac上做对比,怎么看怎么顺眼…… 最后请教同事,用xargs-d参数解决 This manual page documents the GNU version of xargs....single quotes or a backslash) or newlines GNU xargsmanpage说支持blanks 按说空格也应该可以啊…… xargs.cread_line函数里...但是有网友指出:按照POSIX标准、GNU xargs文档,开启-I就是强制一整行,我用法不清真。对此我只能说:满足标准但是不满足需求啊,为什么输出参数会影响输入端行为呢?

12910
您找到你想要的搜索结果了吗?
是的
没有找到

对find xargs grep和管道深入理解

-name '*.py' |xargs grep test 刚开始时候,我不熟悉xargs命令,所以直接使用命令是 find ....这时cat命令接收标准输入完毕,执行命令,也就是将刚才键入内容输出标准输出上(屏幕)。 管道: 管道作用是将前面命令标准输出作为后面命令标准输入。...xargs命令: xargs命令通俗来讲就是将标准输入转成各种格式化参数,所以命令[command 1] | xargs [command 2]就是将command 1标准输出结果,通过管道|变成xargs...-name '*.py' |grep test,是将前面命令标准输出作为标准输入传给了grep test,那么grep是从这些标准输入寻找test字符,也就是文件名组成字符流 $ find ....-name '*.py' |xargs grep test,通过xargs,find得到文件名成为了参数传给后面的grep,那么这时候这些文件名就是实实在在文件标识,grep接收后会按正常使用方式在各文件中搜寻字符串

58120

多次grep 没有看到输出

tail -f xxx.log | grep aaaa | grep bbbb 发现没有日志输出 但log中那条记录包含aaaa 和 bbbb,就是说tail  -f xxx.log | grep aaaa...可以输出,tail -f xxx.log | grep bbbb可以输出 对日志记录做多次grep过滤输出,格式如下: tail -f log | grep xxx | grep yyy 发现grep失效...google研究了一下,原因如下: 管道 | 是全缓冲,一般来说buffer_size为4096,有些是8192。不管具体值多少,只有buffer_size满了,才会看到输出。...在操作里  >>file 这个操作也是全缓冲。调整如下 tail -f log | grep --line-buffer xxx | grep --line-buffer yyy 结果输出正常。...grep当带上了 --line-buffer 时候,每输出一行,就刷新一次。 在unix里,块设备和普通文件,以及管道都是全缓冲

2.1K80

Linux Shell 文本处理工具集锦-Grep+xargs

1 grep 文本搜索 grep match_patten file # 默认访问匹配行 常用参数: -o 只输出匹配文本行 VS -v 只输出没有匹配文本行 -c 统计文件中包含文本次数 grep...-R -n 2 匹配多个模式 grep -e "class"-e "vitural" file 3 grep输出以作为结尾符文件名:(-z) grep "test" file* -lZ| xargs...-0 rm 2 xargs 命令行参数转换 xargs 能够将输入数据转化为特定命令命令行参数;这样,可以配合很多命令来组合使用。...比如grep,比如find; 将多行输出转化为单行输出 cat file.txt| xargs 是多行文本间定界符 将单行转化为多行输出 cat single.txt | xargs -n 3 -n:...指定每行显示字段数 xargs参数说明 -d 定义定界符 (默认为空格 多行定界符为 ) -n 指定输出为多行 -I {} 指定替换字符串,这个字符串在xargs扩展时会被替换掉,用于待执行命令需要多个参数时

39320

xargs使用

根据man手册, xargs作用是 “xargs从stdin读入每一条, 并且以空白字元或断行字元作为分辨, 将stdin条目分隔成为 arguments....因为是以空白字元作为分隔, 所以如果有一些档名或者是其他意义名词内含有空白字元时候, xargs 可能会误判, 如果需要处理特殊字符, 需要使用-0参数进行处理.”...可以看到不加xargs时, 只会将find结果打印出来. 加上xargs, 会将find找到cs文件内容显示出来....这里就可以看出xargs 和 管道直接传一个重要区别: 管道是实现”将前面的标准输出作为后面的标准输入”. xargs是实现”将标准输入作为命令参数”. 所以 find ....结论 find, xargs和wc联合使用, 查找代码行数思路如下: find: 负责找到所有符合要求cs文件路径. xargs: 将cs文件路径以命令参数形式传给wc.

59420

linux中grep如何排除过滤输出总结

grep 是一种强大命令行工具,用于在一个或多个输入文件中搜索与正则表达式匹配行并将每个匹配行写入标准输出。...在以下示例中,字符串games出现在行首行被排除在外: > grep -v "^games" file.txt 命令输出可以grep通过管道过滤,只有匹配给定模式行才会打印在终端上。...例如,要打印出系统上所有正在运行进程,除了以用户root身份运行进程,你可以过滤ps 命令输出: > ps -ef | grep -wv root 排除目录和文件 有时,当使用-r或-R选项执行递归搜索时...请将排除目录括在大括号中,并用逗号分隔,不要有空格。...{png,jpg} rumenz * 相关文章 linux之grep使用技巧 linux中grep命令12个实际例子

2.2K20

浅谈Linux中xargs命令

在说xargs命令之前,先说两句Linux中管道(pipe)。 管道负责单向连接前一个程序标准输出与后一个程序标准输入,其本质是一个共享文件。...还有很多命令(比如最常见mkdir、rm、cp等等等)都不会从标准输入读取内容,这时如果在管道符后加上xargs,再加上要执行命令,那么前一个程序标准输出就会作为后一个程序参数,而不是标准输入了...-name '*.java' | xargs grep Impl 同样地,上面例子中kill命令应该改写成: ps aux | grep redis-cli | grep -v grep | awk...自定义分隔xargs默认用IFS(inner field separator,即内部域分隔符,包含空格、制表符、换行符)分割上一个程序标准输出。...'作为分隔符。

2.1K30

Linux命令(1)——xargs命令

1.功能: xargs可以将stdin中以空格或换行符进行分隔数据,形成以空格分隔参数(arguments),传递给其他命令。...因为以空格作为分隔符,所以有一些文件名或者其他意义名词内含有空格时候,xargs可能会误判。简单来说,xargs是给其他命令传递参数一个过滤器,是构建单行命令重要组件之一。...-d , --delimiter=: xargs处理标准输入默认是按换行符和空格作为分隔符,输出arguments分隔符是空格,这里修改xargs处理标准输入时分隔符。...echo 01234 01234 (6)将文件内容以空格分隔同行输出。...9 命令解释: ps -ef|grep spp用于查找包含spp进程,awk '{printf "%s ",$2,FNR}将目标进程ID打印输出xargs kill -9则将目标进程ID作为参数传递给

1.9K30

linux中grep如何排除过滤输出总结

grep 是一种强大命令行工具,用于在一个或多个输入文件中搜索与正则表达式匹配行并将每个匹配行写入标准输出。...默认情况下,grep区分大小写。这意味着大写和小写被视为不同字符。要在搜索时忽略大小写,请grep使用该-i选项进行调用。 如果搜索字符串包含空格,则需要将其括在单引号或双引号中。...在以下示例中,字符串games出现在行首行被排除在外: > grep -v "^games" file.txt 命令输出可以grep通过管道过滤,只有匹配给定模式行才会打印在终端上。...例如,要打印出系统上所有正在运行进程,除了以用户root身份运行进程,你可以过滤ps 命令输出: > ps -ef | grep -wv root 排除目录和文件 有时,当使用-r或-R选项执行递归搜索时...,并用逗号分隔,不要有空格。

2.6K00

xargs note

与管道区别 管道可以实现:将前面的标准输出作为后面的 标准输入 管道无法实现:将前面的标准输出作为后面的 命令参数 $ cat /etc/passwd | grep root # grep命令可以接受标准输入作为参数...分隔xargs会将前一个命令标准输出转换成命令参数,但很多人可能不知道是,xargs标准输入中出现“换行符、空格、制表符”都将被空格取代 xargs默认分隔符是空格 还可以使用-...-name '*.log' -print0 | xargs -0 rm -f xargs提供了-0选项,允许将NULL作为分隔符,而find命令也心有灵犀地提供了对应选项来产生以NULL字符作为分隔输出...find命令提供对应方法是-print0选项,在文件名之后输出NULL,而不像-print选项那样输出换行符(换行符会被xargs替换成空格)。...xargs-0选项不仅可以将分隔符从默认空格变成NULL,还会将单引号、双引号、反斜线等统统默认为是普通字符。

43010

Linux中xargs

Linux中xargs xargs将参数作为标准输入传递给指定程序。它一个应用场景是:一些程序无法从管道中读取输入,比如rm、kill等等,在需要使用管道时,可以使用xargs命令。...下面的例子中,ls -l命令并不会理会now.txt,而是直接输出目录中文件列表: $ echo 'now.txt' | ls -l total 2072 -rw-rw-r-- 1 tom tom 2097152...处理这个情况,用管道将echo输出传给xargs作为参数,xargs将这些参数作为ls -l标准输入: $ echo 'now.txt' | xargs ls -l -rwxrwxr-x 1 tom...tom 14 Jun 12 12:18 now.txt -i命令选项使xargs具有插入功能,使用{}代表参数占位符: $ find -maxdepth 1 -type f '!'...12 12:18 now.txt.bk 在一些情况下,xargs没有从管道中得到内容,但是其之后命令还是会运行: $ find ./ -empty $ find ./ -empty | xargs ls

2.4K30

xargs 命令教程

管道命令作用,是将左侧命令(cat /etc/passwd)标准输出转换为标准输入,提供给右侧命令(grep root)作为参数。...$ echo "hello world" | echo 上面的代码不会有输出。因为管道右侧echo不接受管道传来标准输入作为参数。...四、-d 参数与分隔符 默认情况下,xargs将换行符和空格作为分隔符,把标准输入分解成一个个命令行参数。...find命令有一个特别的参数-print0,指定输出文件列表以null分隔。然后,xargs命令-0参数表示用null当作分隔符。...所以,10个阿拉伯数字运行了五次echo命令,输出了五行。 九、-I 参数 如果xargs要将命令行参数传给多个命令,可以使用-I参数。 -I指定每一项命令行参数替代字符串。

71820

xargs 命令入门教程

管道命令作用,是将左侧命令(cat /etc/passwd)标准输出转换为标准输入,提供给右侧命令(grep root)作为参数。...$ echo "hello world" | echo 上面的代码不会有输出。因为管道右侧 echo 不接受管道传来标准输入作为参数。...-d 参数与分隔符 默认情况下,xargs将换行符和空格作为分隔符,把标准输入分解成一个个命令行参数。...find 命令有一个特别的参数 -print0,指定输出文件列表以 null 分隔。然后,xargs 命令 -0 参数表示用 null 当作分隔符。...所以,10 个阿拉伯数字运行了五次 echo 命令,输出了五行。 -I 参数 如果 xargs 要将命令行参数传给多个命令,可以使用 -I 参数。 -I 指定每一项命令行参数替代字符串。

65020

Linux下find、awk、sed、grep命令例子

is a test 3 Are you like awk This's a test 10 There are orange,apple,mongo # 指定,为分隔符,在test中查找,并且输出分隔之后每行第一...Expression Print(全局正则表达式打印) # 输出test.txt中搜索含有'abc'或'Abc'grep '[aA]bc' test.txt # 输出test.txt中搜索含有'...:extended grep等于grep -E,支持扩展正则表达式 命令合成 # 在当前目录下查找名称后缀为.log文件,并且将输出转换为一行(xargs),找到abc。...-name "*.log" | xargs grep -i -n "abc" # -l输出匹配文件名,不输出匹配行;-R表示递归目录;-Z表示文件名间使用null进行分隔 # -0表示xargs只格式化一个文件...fgrep -lRZ "1.2.3.4" . | xargs -0 sed -i -e "s/1.2.3.4/5.6.7.8" 总结 三个命令运用形式  grep ‘字符’ 文件  sed ‘命令

1.8K10
领券