xargs
xargs可以捕获一个命令的输出,然后传递给另外的一个命令。
例如
find /bin -name bash | xargs ls -al
-rwxr-xr-x 1 root root 1113504 Jun 7 2019 /bin/bash
find /bin -name bash
的输出传递给ls -al
上面的例子中find /bin -name bash 只有一个输出,直接传递给ls -al。
若前面的命令有多个输出,挨个将输出传递给xargs后面的命令;假若xargs后面无命令,则xargs对前面命令的输出,重新格式化后输出。
test.txt文件存储以下数据,直接输出如下:
cat test.txt
123 234 345
将输出结果传递给xargs,对内容进行格式化后输出
cat test.txt | xargs
123 234 345
xargs 选项
-n num 后面加次数,表示命令在执行的时候一次用的argument的个数,默认是用所有的。
获取输出的执行行,可以通过-n 1 选项将输出逐行打出
cat test.txt | xargs -n1
123
234
345
sed
sed 可依照脚本的指令来处理、编辑文本文件
使用sed选择指定行,例如选择第二行 '2,2p'
cat test.txt | xargs -n1 | sed -n '2p'
234