文で説明しようとすると難しいけど、
のようなデータがあった時に
にしたい。
これはpasteコマンドを使う。
なんでpasteコマンドでこんなことができるかというと
引数として-(ハイフン)を渡すと標準入力から読み込むから。
しかも、-(ハイフン)を書いた回数分、標準入力から読み込むので、
1行目、2行目、3行目を別に読み込んで、くっつけてくれる。
最後にちょうど3の倍数行で終わらなかった場合のために行末の,(カンマ)を削除する。
前回の文字列を繰り返す方法と組み合わせると以下のようになる。
これなら100行毎とかでも対応できる。
$ cat paste.dat 1 2 3 4 5 6 7 8 9
のようなデータがあった時に
1,2,3 4,5,6 7,8,9
にしたい。
これはpasteコマンドを使う。
$ paste -d ',' - - - < paste.dat | sed -e 's/,*$//'
なんでpasteコマンドでこんなことができるかというと
引数として-(ハイフン)を渡すと標準入力から読み込むから。
しかも、-(ハイフン)を書いた回数分、標準入力から読み込むので、
1行目、2行目、3行目を別に読み込んで、くっつけてくれる。
最後にちょうど3の倍数行で終わらなかった場合のために行末の,(カンマ)を削除する。
前回の文字列を繰り返す方法と組み合わせると以下のようになる。
$ paste -d ',' $(printf "%3s" | sed -e 's/ / -/g') < past.dat | sed -e 's/,*$//'
これなら100行毎とかでも対応できる。
0 件のコメント:
コメントを投稿