我們可以用管道將乙個命令的stdout重定向到另乙個命令的stdin。例如
cat foo.txt | grep "bar"
但是,有些命令只能以命令列引數的形式接受資料,而無法通過stdin接受資料流。在這種情況下,xargs就顯得非常的有用了。
cat example.txt
1 2 3 4
5 6 7
8 9cat example.txt | xargs
1 2 3 4 5 6 7 8 9
cat eaxmple.txt | xargs -n 3
1 2 3
4 5 6
7 8 9
echo "splitxsplitxsplitxsplit" | xargs -d x
split split split split
首先,看下下面的一行命令有什麼效果:
find . -name '*.sh' | ls -al
它會列出當前目錄下的所有檔案,因為ls不能接受管道的stdout作為自己的stdin 怎麼辦呢?
--用xargs:
find . -name '*.sh' | xargs ls -al
這樣就能列出當前目錄下所有以sh為字尾的檔案了。
另外,上面的這條命令還可以用find -exec來寫:
find . -name '*.sh' -exec ls -al {} \;
linux學習筆記 xargs
我們可以用管道將乙個命令的stdout重定向到另乙個命令的stdin。例如 cat foo.txt grep bar 但是,有些命令只能以命令列引數的形式接受資料,而無法通過stdin接受資料流。在這種情況下,xargs就顯得非常的有用了。cat example.txt1 2 3 4 5 6 7 8...
xargs筆記 xargs和mv配合
將所有子目錄裡的txt檔案移動到當前目錄。d installer 2 321.txt 新建資料夾 1.txt 新建資料夾 fds.txtfind mindepth 2 name txt xargs i file mv file 原理 find命令便令當前目錄,通過 mindepth 2排除當前層級。...
xargs 命令教程筆記
unix 命令都帶有引數,有些命令可以接受 標準輸入 stdin 作為引數。cat etc passwd grep root上面的 使用了管道命令 管道命令的作用,是將左側命令 cat etc passwd 的標準輸出轉換為標準輸入,提供給右側命令 grep root 作為引數。因為grep命令可以...