内容一:理解 xargs 的作用
1.1 Linux 命令可接收的内容
1) 第一种内容是输入
2) 第二中内容是参数
1.2 Linux 命令对可接收内容的态度
1) 有些命令既可以接收输入也可以接受参数
2) 有些命令只能接收输入
3) 有些命令只能接收参数
1.3 xargs 的作用
当管道符号 “|” 将前一个命令的输出结果转换为下一个命令的输入时,再将此输入转换为参数
1.4 理解 xargs 作用的案例
1.4.1 准备一个用于测试的文件
# echo "This is a test file" > test.txt
1.4.2 测试没有 xargs 命令的情况
# echo test.txt | cat
test.txt
(补充:此时 test.txt 对于 cat 而言是输入)
1.4.3 测试有 xargs 命令的情况
# echo test.txt | xargs cat
This is a test file
(补充:此时 test.txt 对于 cat 而言是参数)
内容二:xargs 的使用案例
2.1 案例一:xargs 对参数进行分行
# echo aa bb cc dd ee | xargs -n 2
aa bb
cc dd
ee
(补充:这里以设置每 2 个参数为 1 行为例)
2.2 案例二:xargs 指定分割参数的分割符
# echo aa@bb@cc@dd@ee | xargs -d @
aa bb cc dd ee
(补充:这里以将 @ 设置为分割符为例)
2.3 案例三:xargs 不输出参数,而是将参数传输给后面的命令,并让此命令使用此参数执行
# echo aa@bb@cc@dd@ee | xargs -d @ -p echo
echo aa bb cc dd ee
?...y
aa bb cc dd ee
(补充:这里以需要在执行命令 echo aa bb cc dd ee 前输入 y 为例)
2.4 案例四:xargs 只输出前几个参数
# echo aa bb cc dd ee | xargs -E cc echo
aa bb
(补充:这里以只输出在 cc 之前的参数,不包括 cc 本身为例)
(注意:当使用了 -d 参数后,-E 参数会失效)
2.5 案例五:xargs 将参数放到后面命令的指定位置
# echo test | xargs -I '{}' find '{}' -name a.txt
(
补充:
1) 这里以将命令 echo test 输出结果的值,传递给命令 find ‘{}’ -name a.txt 的 ‘{}’ 选项为例
2) xargs 默认会将处理后的参数整体传递到下一个命令的问题
)