xargs

由于很多命令都是命令行参数的形式
xargs命令主要是用与将标准输出转换成命令行参数的形式
由于需要标准输出,这个命令也经常配合管道运算符'|'使用
例如

echo "file1 file2 file3" | mkdir 

上面的那段命令类似于mkdir file1 file2 file3

xargs基本格式

xargs [-options] [command]

如果不加[command]默认为 echo

参数

-d参数分隔

默认情况下,xargs将换行符和空格作为分隔符,把标准输入分解成一个个命令行参数。-d参数可以更改分隔符。但是-d只能是字符

$ echo -e "a\tb\tc" | xargs -d "\t" echo
a b c

-L num 参数

xargs可以将标准输入作为命令行参数,每个命令行参数分别执行一次命令
其中-L num表示将标准输入中的每num行作为每个命令的分割

$ echo -e "a\nb\nc" | xargs -L 1 echo
a
b
c

-n num 参数

-L num差不多只不过使用空格作为分割

$ echo {0..9} | xargs -n 2 echo
0 1
2 3
4 5
6 7
8 9

-I replace-str 参数

设置一个replace-str作为标记作为命令行参数,之后将换成按空行分割的标准输出作为replace-str的替换,可以达到类似每个命令行参数执行一次命令的效果

-P max-procs 参数

上面我们可以看到我们能将标准输入分割成多个命令行参数,每个命令行参数可以当一个命令的命令行参数执行。默认是一个线程串行执行,加上-P max-procs之后我们可以开多个进程并行的执行。

引用

最后修改:2023 年 10 月 18 日
如果觉得我的文章对你有用,请随意赞赏