xargsで各引数ごとの出力の先頭を色分けして表示する

結構前にネットサーフィンしてたところ、xargsの行頭に引数を色付きで出力するようなコマンドについて見かけたのだが、同じような処理を既存のxargsで行えないかと思ったのでやってみた。

seq 3 8 | nl | xargs -n2 bash -c 'seq $1 | sed "s/^/printf \$(tput setaf 0)\$(tput setab $(($0 % 9)))$1\$(tput sgr0)\": \"/g;s/$/;echo;/g"|bash'

一応出来はするけど、ちょっと記述が煩雑な感じ。 実際に使う場合はfunctionにでもしてあげればいいんだろうけど、あまり使い勝手はよくなさそうだ。

xargsは-Pで指定したプロセス数での並列実行もできるので、出力を混ぜずにプロセスを並列実行するならいいかも?