CSV(カンマ区切り)をいじる

カンマ区切りのテキストを相手に、順番を入れ替えたり、必要な部分だけを抽出してみたりします。

サンプルは、No、姓、名、生年月日、趣味という5項目の個人情報です。

置換前サンプル
1,やまだ,たろう,1980/02/04,補助
2,やました,いちろう,1970/03/10,散歩ごっこ
3,やまもと,じろう,1971/10/10,体育座り
4,やまかわ,じょにー,,足袋
5,やまっちょ,さぶろう,1983/10/1,Backspace連打

基本は、以下の検索文になります。

検索:

各項目は (([^,]?)*)で表現されます。
これを項目の数だけ、カンマで区切ります。

\1 -- No
\2 -- 姓
\3 -- 名
\4 -- 生年月日
\5 -- 趣味

というように取り出すことができ、置換で使用できます。


まずは、なんとなく姓名を入れ替えます。

置換:

 置換後
1,たろう,やまだ,1980/02/04,補助
2,いちろう,やました,1970/03/10,散歩ごっこ
3,じろう,やまもと,1971/10/10,体育座り
4,じょにー,やまかわ,,足袋
5,さぶろう,やまっちょ,1983/10/1,Backspace連打

No と 姓 と 趣味だけ抜き出したい場合は、こう。

置換:

 置換後
1,やまだ,補助
2,やました,散歩ごっこ
3,やまもと,体育座り
4,やまかわ,足袋
5,やまっちょ,Backspace連打

10月生まれの人のみ調べてみますか。
grep を使って検索結果のみを抽出します。
grepでの抽出の仕方は ある文字が含まれない行を削除する へ。

検索する文字列 :
検索するファイル :(現在の内容)

 置換後
(3): 3,やまもと,じろう,1971/10/10,体育座り
(5): 5,やまっちょ,さぶろう,1983/10/1,Backspace連打

と、ある程度カンマ区切りのテキストを扱うこともできます。
あまり複雑なことは大変なので、そんなのは Excel などに任せましょう。