スポンサーリンク
awkのORS変数
※awkの使い方をまとめて一覧にしました。
参考:awk入門-使い方まとめ一覧-
参考:awk入門-使い方まとめ一覧-
※MACターミナル(BSD系)での動作確認です。
awkのORS変数で、print出力時の行の区切り文字を設定できます。
デフォルトは改行コードが設定されています。
例えば、下記のin.txtがあったとします。
$ cat in.txt a1,a2 b1,b2 c1,c2 d1,d2 e1,e2
下記のように、単に1行ずつ表示させると、改行が入ります。
$ cat sample0.awk #!/bin/sh cat in.txt | awk ' { print $0 } '
下記が実行結果になります。
$ ./sample0.awk a1,a2 b1,b2 c1,c2 d1,d2 e1,e2
BEGINブロックでORSにカンマを設定しました。
参考:awkで変数の初期化はBEGINブロック内が基本
$ cat sample.awk #!/bin/sh cat in.txt | awk ' BEGIN{ ORS = "," } { print $0 } '
下記が実行結果になります。
$ ./sample.awk a1,a2,b1,b2,c1,c2,d1,d2,e1,e2,
スポンサーリンク
その他サンプルコード(改行コードを削除)
ORSに空文字を設定すると、改行が削除されることになります。
下記がサンプルコードになります。
$ cat sample1.awk #!/bin/sh cat in.txt | awk ' BEGIN{ ORS = "" } { print $0 } '
下記が実行結果になります。
$ ./sample1.awk a1,a2b1,b2c1,c2d1,d2e1,e2
下記のようにして、1行で全ての要素を結合することもできますね。
参考:awkのOFS変数で出力の区切り文字を設定する方法
$ cat sample2.awk #!/bin/sh cat in.txt | awk ' BEGIN{ FS = "," OFS = "" ORS = "" } { print $1, $2, $3 } '
下記が実行結果になります。
$ ./sample2.awk a1a2b1b2c1c2d1d2e1e2
スポンサーリンク