概念:
可以通過stdin來進行command的執行,優勢在於可以把多行的命令文本,每次都單一執行。
其中空格、tab、\r、\n都可以作爲分隔符。
例子:
1. 默認行爲:
$ cat args.txt
args1
args2
args3
$ cat args.txt |xargs
args1 args2 args3
2. 設置每行輸出內容:
$ cat args.txt |xargs -n 2 #每行輸出最多兩個
args1 args2
args3
3.執行shell腳本
# Shell 腳本 test.sh
#!/bin/bash
echo $*'#'
#執行命令
$ cat args.txt | xargs -n 1 ./test.sh
args1#
args2#
args3#
4.需要固定行尾有默認參數時, -I 跟替換字符串。
$ cat args.txt | xargs -I ^ ./test.sh ^ -l -p
args1 -l -p#
args2 -l -p#
args3 -l -p#
5.結合find進行參數查找
$ find . -name '*.txt' | xargs -I ^ sh -c "echo '\n ^ :'; grep args1 ^"
./test/arg.txt :
./test/test.txt :
./args.txt :
args1