xargs命令的作用是将上一个命令的输出,传递到下一个命令中。它把一个输出流分割为一个足够小的块,方便过滤器和命令进行处理。通常情况下,xargs从管道或者stdin读取数据,默认的命令是echo,而且换行符和空白会被空格替代。
以下举个栗子:
[root@iZ23j6e7bheZ ~]# ll | grep '\.txt'
-rw-r--r-- 1 root root 36 Apr 15 21:19 sort.txt
-rw-r--r-- 1 root root 38 Apr 15 21:01 uniq2.txt
-rw-r--r-- 1 root root 38 Apr 15 20:58 uniq.txt
1.直接使用xargs
[root@iZ23j6e7bheZ ~]# ll | grep '\.txt' | awk '{print $9}' | xargs
sort.txt uniq2.txt uniq.txt
结果返回了1行,3个文件名使用空格隔开,xargs根据行返回了3个参数。
2.使用-n参数指定参数个数
[root@iZ23j6e7bheZ ~]# ll | grep '\.txt' | awk '{print $9}' | xargs -n 2
sort.txt uniq2.txt
uniq.txt
结果返回了2行,每行2个参数