Skip to main content

Unix/Linux 的 xargs 指令使用

xargs (extended arguments) 用途是把文本依照空隔分開,通常會再搭配指令執行。

常用參數

  • -n: 每次傳幾個參數
  • -d --delimiter: 設定分隔符
  • -E: 設定結束字元
  • -p --interactive: 互動式,每次執行前確認
  • -r --no-run-if-empty: 輸入為空則不執行

常用範例

先從基礎說起,雖然幾乎很少這樣用,但是不可能不學會基礎用法吧。

xargs -E EOF

接著輸入

a
bb
ccc
EOF

最後就會被拆成 a, bb, ccc 三個輸出,-E EOF 設定 EOF 是結束字元,不設定的話使用 ctrl+D 也可以結束輸入。

移除 pip 所有套件

xargs 比較常見的是搭配管道符號使用,比如以下:

pip freeze | xargs pip uninstall -y

pip freeze 會輸出以下

pip freeze
certifi==2025.4.26
charset-normalizer==3.4.2
colorama==0.4.6
idna==3.10
requests==2.32.3
urllib3==2.4.0

然後交給 xargs 移除。

拆分字串

變成每個字一行,最後輸出給 a.txt。

xargs -n 1 echo <<< "a b c d" > a.txt

<<< 把字串重定向到指令的 stdin,也可以改用 heredoc 完成:

xargs -n 1 echo <<EOF > b.txt

然後輸入你要的文字,最後輸入 EOF 結束。