空白(複数個)区切りのテキストファイルをcsvに変換したときのメモ。
- 目標
sample.txt
-0.02223544 0.36483891 -1.16350713
1.72316747 -1.4276687 0.91534189
0.47763427 -0.52007756 0.91546411
を
sample.csv
0.36483891,-1.16350713
-1.4276687,0.91534189
-0.52007756,0.91546411
に変換する
- コマンド
複数個の空白を,
に置換した後、先頭の,
を消し、空行を消し、2列目と3列目を取り出す。
GNU版のsedの場合:
sed -e 's/ \+/,/g' -e 's/^,//g' -e '/^$/d' sample.txt | awk -F',' -v 'OFS=,' '{print $1,$2}' > sample.csv
BSD版のsed:
sed -e 's/ \{1,\}/,/g' -e 's/^,//g' -e '/^$/d' sample.txt | awk -F',' -v 'OFS=,' '{print $1,$2}' > sample.csv