「行単位で出力されるコマンドの実行結果を受け取り、行から列へ変更する」とタイトルをつけてみたものの、今いち想像がつきにくいタイトルになってしまいました。
「行単位で出力される」とは以下のseqコマンドの実行結果がわかりやすいですね。
1 2 3 4 5 6 7 |
# seq 5 1 2 3 4 5 # |
実行結果が縦に並んでいます。
これを横に並ぶような列形式に変換します。
どうすればよいか。
ずばり、xargsを使います。
1 2 3 |
# seq 5 | xargs 1 2 3 4 5 # |
はい。列に並びましたね。
見た目が変わっただけでなく、処理自体もこの「1 2 3 4 5」に対して行うことができます。
例えば、区切り文字を変更する場合、以下のように処理します。
1 2 3 |
# seq 5 | xargs | sed "s/ /,/g" 1,2,3,4,5 # |