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