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