学习使用xargs的精妙之处

发布时间:2019-11-16编辑:脚本学堂
xargs就是把从stdin 接收到数据重新格式化,再将其作为参数提供给其他命令,利用xargs可以将多行输入转换为单行的输出; 也可以将单行输入转换为多行输出。

xargs 就是把从 stdin 接收到数据重新格式化,再将其作为参数提供给其他命令,利用xargs可以将多行输入转换为单行的输出; 也可以将单行输入转换为多行输出。
-d 可以指定定界符
-n 将输入分为多行

复制代码 代码如下:
[root@master tmp]# cat ceshi.txt
a b c
d e f g
h i j k

[root@master tmp]# cat ceshi.txt | xargs
a b c d e f g h i j k

[root@master tmp]# cat ceshi.txt | xargs -n 2
a b
c d
e f
g h
i j
k

当find与xargs结合时候,就必须将-print0与find结合使用,这是为了预防文件名中的空格而设置的:
find . -type f -name "*.txt" -print0 | xargs -0 rm -rf
(解决参数过长问题,我们可以用-n来指定每行多少参数)

-i 选项告诉xargs用{}来来代替每项的名称
-t 告诉xargs先打印命令然后再执行
-p 使xargs具有交互性,不过鸡肋无用