Ansatzの備忘録

勉強したことあるいはふと思い立ったこと

シェルワンライナー160本ノック問題70

問題70 Excel方眼紙

問題のファイルは

https://github.com/shellgei/shellgei160

からダウンロードできる。

あの忌まわしいExcel方眼紙を作る問題だった。そもそもCSVにおけるエスケープ処理をわかっていなかった。

解答例は

cat excel_hogan.txt | sed 's/./&_/g' | sed 's/"/""""/g' | sed 's/,/","/g' | tr _ ,| nkf -sLwx > hoge.csv

となる。ダブルクォートはフィールドの値のエスケープ処理に使う記号だが、それ自身を表示したいときはダブルクォートを2つ並べてそれをさらにダブルクォートで囲ってやる必要がある。

B.4 CSVファイルの形式