行頭に文字をつける + 複数の処理を一括で行う

普段のデータ処理で,日経NEEDSなどのデータを扱う際には"N" + 7桁数字の日経コードで企業の識別を行うことが多いのですが,PMの日経コードは7桁数字のみが収録されているため,冒頭に"N"をつけなければなりません。
普通の正規表現の処理と同じく,^が行頭を表します。ですので上の処理は,

sed -e 's/^/N/g' monthly_ret.csv > monthly_ret.csv

でいけます。

で,コンマ区切りへの修正と行頭に"N"をつける二つの処理を1行で行うには,

sed -e 's/\s\+/,/g; s/^/N/g' monthly_ret.txt > monthly_ret.csv

と,処理を";"でくじっていけばよいとのことです。

これまでrubyで書いた10行くらいのスクリプトで上の処理をしていたのですが,かなり短くなりました。linuxは偉大だ。

ちなみに秀丸の置換で上の処理をしたら,固定長->コンマ区切りの処理でかなりの時間が必要でした。
ただ,他のエディタでは大きなファイルが開かなかったり,置換に正規表現が利用できなかったりなので,秀丸は使いやすいほうなんですけどね。

あ,この記事はvimで書いてます!