スポンサーリンク

awkで”,”区切りの列を入れ替える

awkなら列の入れ替えが簡単に書けてしまいます。

※MACターミナル(BSD系)での動作確認です。

例えば、下記のin.txtがあったとします。

例えば、1列目と3列目を入れ替える場合は下記のようにワンライナーで書けます。

print出力の際に、1列目と3列目を入れ替えればOKです。
in.txtは”,”区切りなので、-Fオプションで”,”を指定します。

参考:awkの-Fオプションで区切り文字を指定する方法

今度は、2列目と3列目を入れ替えてみます。
(out.txtにファイル出力しています)

スポンサーリンク

awkでスペース区切りの列を入れ替える

今度はスペース区切りのファイルを処理してみます。

awkはデフォルトでスペース区切りのファイルを想定しています。
なので、-Fオプションの指定はなしでOKです。

print出力の際の区切り文字を、OFS変数で指定しても良いかと思います。

参考:awkのOFS変数で出力の区切り文字を設定する方法

ワンライナーだと混み合うので、下記のスクリプトを書きました。
2列目と3列目を入れ替えています。

下記が実行結果になります。
$ ./sample.awk
J 4 2002
K 5 2002
L 6 2002

スポンサーリンク