Vimとサクラエディタでcsvに立ち向かう正規表現
( ´_ゝ`)ノシ
yoshitiaです。
夏になったのでトップの画像変えなきゃと思いつつ秋を迎えそうです。
タイトルの話ですが、DBとかでテスト用データ作る時、
csvを軽く編集したい、そういうことありますよね。
で、大量データは自動生成するとして
作った後に微妙に修正したい箇所が出来た時、
直接編集したい、そういうのありますよね?
でも投入するデータのcsvが1行数百カラムだったり、
複数の項目に入る文字数が均一でなくてレコードごとに
目的のカラムの位置が異なる。
(ノ`Д´)ノ彡┻━┻ としたくなりますが
お仕事だとそうはいかないわけで。
そこで検索のシンタックスハイライトを利用して
カラムの位置を特定して作業を楽にします。
サクラエディタの場合だと
検索で正規表現を使用するチェックを入れてから
^[^,]*,([^,]*,){2}
を検索窓に入力して実行します。
書いてる例の正規表現の意味は
^[^,]*,が行頭から一つ目のカンマまでの文字列を検索対象にしていて
([^,]*,){2}は()の中の検索対象の{n}回繰り返しを検索対象にしています。
例の場合はカンマ以外の文字列とその後ろに付くカンマのセットの2回繰り返しが検索対象です。
この2つを繋げると、
「行頭からcsvの3カラム目までを検索対象にする」正規表現になります。
{}の数字を増減させると検索対象になるカラム数を調節できます。
Vimの場合だと
\v^[^,]*,([^,]*,){2}
これを/の入力後に入力します。
頭に\vが付く以外はサクラエディタの場合と同じです。
Happy Vim Life!