可変個の空白文字でフィールドを区切る形式のテキストデータを、カンマ区切り(CSV)データに変換する。
$ awk -v IFS=' ' -v OFS=',' '{$1=$1;print $0}' src.txt > dest.csv
awkコマンドの組み込み変数IFS
(入力フィールド区切り文字)とOFS
(出力フィールド区切り文字)を利用。一見すると無駄なフィールド自己代入($1=$1;
)により、レコード全体($0
)の再構築が行われるらしい。あふれだすバッドノウハウ感。
例)vmstat
コマンドの出力など
$ cat src.txt
2 0 216376 4947412 0 25388376 0 0 0 0 0 0 0 0 100 0 0
0 0 216376 4954320 0 25388432 0 0 0 2 353 781 0 0 100 0 0
...
$ cat dest.csv
2,0,216376,4947412,0,25388376,0,0,0,0,0,0,0,0,100,0,0
0,0,216376,4954320,0,25388432,0,0,0,2,353,781,0,0,100,0,0
...