分组及传递输出结果到下一个命令【xargs】

xargs的简介

xargs(英文全拼: eXtended ARGuments)是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。

xargs 可以将管道或标准输入(stdin)数据转换成命令行参数,也能够从文件的输出中读取数据。

xargs 也可以将单行或多行文本输入转换为其他格式,例如多行变单行,单行变多行。

xargs 默认的命令是 echo,这意味着通过管道传递给 xargs 的输入将会包含换行和空白,不过通过 xargs 的处理,换行和空白将被空格取代。

xargs 是一个强有力的命令,它能够捕获一个命令的输出,然后传递给另外一个命令

常用参数:

-n【后面加次数,表示命令在执行的时候一次用的argument的个数,默认是用所有的】
-d【delim 分隔符,默认的xargs分隔符是回车,argument的分隔符是空格,这里修改的是xargs的分隔符】
-i【把前面的结果关联到后面的{}符号中】
-I【指定任何符号关联前面所得的结果】

语法:xargs -n 2 <a.txt【将a.txt以2组方式显示】

PS: xargs 一般是和管道一起使用

管道:|【把前面所得到的结果交给后面得命令进行处理,可以一直接管道去执行操作】

语法:find /date -type f -name 'a.txt' | xargs -i rm {}【一般搭配 xargs 命令使用意为:把前面的结果排成一行】
         find /data -type f -name "*.txt"|xargs -i mv {} /test find /data -type f -name "*.txt"|xargs -I [] mv [] /test
         find /data -type f -name "*.txt" | xargs -i rm {}

posted @ 2021-09-16 20:04  ET南浔  阅读(154)  评论(0)    收藏  举报