获取输出的指定行via使用xargs, sed

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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章