forの代わり使える方法

元ネタ

% for i in `seq 3`; do echo $i $i; done
1 1
2 2
3 3

xargsを使う場合

-iオプションを使うと"{}" がデフォルトの置換文字となる。
自動的に -l1 が同時に指定されたことになる。(-l1はコマンドラインあたり最大 1の入力行を用いる。)

% seq 3 | xargs -i echo {} {}
1 1
2 2
3 3

sedを使う場合

&はマッチした文字列(今回は.*なので1行全部)を参照する。

% seq 3 | sed 's/.*/echo & &/' | sh
1 1
2 2
3 3