xargs的功能--> 将标准输入转换为命令行参数,供后面的命令调用,但是一次只能依据-d和-n限定的行数来推送一行
xargs的作用--> 使那些不能利用stdin的命令,可以轻松从stdin获取数据流
xargs的基本命令格式-->
command1 | xargs command2
xargs的常用基本用法-->
- 将多行输入转换成单行输出,不需参数
- 将单行输入转换成多行输出(使用-n num来指定一行所拥有的field),默认以IFS空格作为FS,当然也可以用-d来指定
替换字符串I-->
command | xargs -I {} test.sh -p {} #编写一个脚本test.sh,-p是脚本的一个选项,command命令生成的输出传递给xargs,然后通过xargs将其转变成test.sh脚本的参数.
![](https://www.cnblogs.com/aaa103439/admin/cd622b3e-90d6-4dc2-920b-ebb765541272_4_files/em20.gif)
何为定界符?例子如下
[cactier@localhost ~]$ find -name "*.sh" -print0 ./prostatus.sh./name.sh./test.sh[cactier@localhost ~]$ find -name "*.sh" -print ./prostatus.sh ./name.sh ./test.sh
xargs通常用于将文件名列表作为命令行参数传递给其他命令,故当文件名作为命令行参数的时候,建议用null作为文件名终结符号,而不是用空格