一、命令概述
是英语词组eXtended ARGuments的缩写,它从标准输入中读取由空格或者换行分隔的项,将其转化为空格分隔的参数,然后传递给后面的命令执行一次或者多次。
1.注
- xargs后面的默认命令为echo
- 标准输入中的空行不做处理
- 如果想将标准输入中的空格、反斜杠、引号转化成参数,可以通过添加引号或者反斜杠的方式进行保护
二、命令语法
xargs [操作选项] [命令]
1.常用操作选项
- -d [字符] delimiter,定义输入的分隔符为指定字符
echo -n "hello#world" | xargs -d "#" echo
- -n [数字] number,定义每次传给命令行的最大参数个数,默认是命令行所能接受的最大个数
echo -n "hello#world" | xargs -d "#" -n 1
- -p prompt,每次执行命令之前先提示要执行的命令并询问用户是否继续执行
echo -n "hello#world" | xargs -d "#" -n 1 -p
- -t 在执行命令之前将它打印出来,不需要用户确认
echo -n "hello#world" | xargs -d "#" -n 1 -t
- -I 指定占位符,标识参数使用的位置
echo -n "hello#world" | xargs -I {} echo {}
- -r no-run-if-empty,如果传递的参数为空,就不执行
echo | xargs -r
三、常用操作
testfile.txt
lalala
hahaha
heihei haha
'\'a "\"n \\t
nnn
- 将多行数据处理为一行
cat testfile.txt | xargs
- 将一行数据分成多行
cat testfile.txt | xargs | xargs -n 2
- 批量执行任务
cat testfile.txt | xargs touch
cat testfile.txt | xargs rm