xargs命令把从stdin接受到的数据重新格式化。例如:
$command | xargs
xargs命令可以将多行输入转换成单行输出
$cat example.txt
1 2 3 4 5 6
7 8 9 10
11 12
$cat example.txt | xargs
1 2 3 4 5 6 7 8 9 10 11 12
xargs也可以分成多行输出,每行输出n个。如:
$cat example.txt | xargs –n 3
1 2 3
4 5 6
7 8 9
10 11 12
xargs可以读取stdin,然后将格式化参数传递给命令,如:
$cat example.txt | xargs –n 7 echo
1 2 3 4 5 6 7
8 9 10 11 12
同时可以结合find使用xargs,如:
$ find . –type f –name “*.txt” –print | xargs rm –f
以上删除文件的做法比较危险,很多文件都可能会包含空格符,而xargs很可能会误认为它们是定界符,一下是较安全的方法:
$ find . –type f –name “*.txt” –print0 | xargs -0 rm –f
xargs -0将\0作为输入定界符。
以下是xargs更强大的一个应用,比如统计所有c程序文件的行数:
$ find . –type f –name “*.c” –print0 | xargs -0 wc -l
原文地址:http://www.cnblogs.com/sherlockhomles/p/3835433.html