今まで↓のように for で回していたんですが
# [git] 'tmp-' で始まるブランチを全て削除
for branch in $(git branch --list "tmp-*" | cut -b 3-); do
git branch -D $branch
done
xargs -n 1 を使うと↓のように関数型言語の map みたいな感じで書けます。
# [git] 'tmp-' で始まるブランチを全て削除
git branch --list "tmp-*" | cut -b 3- | xargs -n 1 git branch -D
xargs は何も指定しない場合、与えたコマンドの一番最後に引数を追加して呼び出すのですが、コマンドの一番最後以外の場所に引数を指定したい時もあります。そのような場合は -I オプションを使って置換文字列を指定するとよいです。上の例を -I を使って書き直すと以下のようになります。(置換文字列には {} を指定しました)
# [git] 'tmp-' で始まるブランチを全て削除
git branch --list "tmp-*" | cut -b 3- | xargs -n 1 -I{} git branch -D {}
また、-P オプションをつけるとコマンドの並列実行ができます。重いコマンドをたくさん走らせるときには便利かもしれません。
# カレントディレクトリにあるファイルをそれぞれ gzip 圧縮する (4並列)
ls | xargs -n 1 -P 4 gzip -v