xargs で行を連結する
xargs は実行するコマンドが与えられなかったときは echo を使うので、これによって標準入力から受け取った行を連結することができる。
Solaris の man xargs にのってた。
次の例では、カッコで囲まれたコマンドの実行結果を 1 行にまとめ、それを log というファイルの終わりに追加出力することを指定しています。
(logname; date; printf "%s\n" "$0 $*") | xargs >>log
http://docs.sun.com/app/docs/doc/819-1210/6n3j74jv1?q=xargs&a=view
cat xxx.txt | xargs -n 3
とすると3行ずつをまとめてくれる。
Solaris の man はなかなか面白い使用例が載っていていいなあ。
[追記:2006-11-18]
とはいうものの、当然1行が長すぎる場合は正しく扱えないので、推奨はできない。
[追記:2006-11-20]
- n は引数の個数を指定するので、入力行に複数の単語がある場合は -L の方がいい。