xargs †
任意の箇所に引数を指定 †
- シングルクオート「'」で括るのが重要。ダブルクオートではうまく出来ない
echo a b c d | xargs -n 2 bash -c 'echo $0,$1'
a,b
c,d
xargsで複数コマンドを実行 †
- CenOS 6/7の場合: bash -c 'cmd1 {}; cmd2 {}' のようにする。例:ISO-8601形式の日付を持つログを探す
sudo find /var/log/ -name '*.log' -type f | xargs -i bash -c 'echo "-- {}"; sudo tail -n 5 {} | grep -P "\d{4}-\d{2}-\d{2}T"'
よく使うオプション †
- t: 実行時のコマンド表示
- p: 実行時の確認
- P: 並列度の指定
- n: 処理する引数の数。2の場合「echo $0, $1」のように使える
- i: -I{} と同等。「echo {}」のように使える