パイプ区切りファイルを CSV(Comma Separated Value) = カンマ区切り ファイルへと変換するスクリプトを紹介します。
以下のようなパイプ区切りファイルがあるとします。
$ cat pipe.txt
id | name | score | class
----+--------+-------+-------
1 | Yamada | 90 | 2
2 | Sato | 80 | 1
3 | Suzuki | 95 | 1
以下の三つを目的としたワンライナーを書くと、次のようになります。
① パイプ(|) をカンマ(,)に変換
② 余計な空白を削除
③ 二行目を削除
$ sed -e 's/|/,/g' -e 's/ //g' ./pipe.txt | sed '2d'
id,name,score,class
1,Yamada,90,2
2,Sato,80,1
3,Suzuki,95,1
ついでにこれをシェルスクリプト化しておきます。chmod
コマンドで実行可能な状態にしておきます。
$ cat ./converter.sh
#!/bin/bash
sed -e 's/|/,/g' -e 's/ //g' ./$1 | sed '2d' > ./$2
echo convert $1 to $2
$ chmod 755 ./converter.sh
第一引数に変換元のファイル、第二引数に変換後のファイル名を指定することで、変換可能です。
$ ./converter.sh pipe.txt comma.csv
convert pipe.txt to comma.csv
$ cat comma.csv
id,name,score,class
1,Yamada,90,2
2,Sato,80,1
3,Suzuki,95,1
ご覧いただきありがとうございました。