1、我们可以用一个管道将一个命令的stdout重定向到另一个命令的stdin,例如
$cat a.txt | grep "abc"
2、xargs命令把从stdin接收到的数据重新格式化,再将其作为参数提供给其他命令
$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
$cat example.txt | xargs -n 3 #指定每行参数数量
1 2 3
4 5 6
7 8 9
10 11 12
$echo "splitXsplitXsplitXsplit" | xargs -d X #用-d选项作为指定一个定制的定界符
split split split split
$echo "splitXsplitXsplitXsplit" | xargs -d X -n 2 #用-d选项作为指定一个定制的定界符,并且指定每行n个参数
#!/bin/bash #文件名:echo.sh echo $@'#'
$cat args.txt | xargs -n 2 ./echo.sh #每次执行需要2个参数命令时