私はCSVファイルを持っており、データは次のようなものです:
"asdd","12","good"
しかし、一部のデータは規制されていません。
"name1,name2","34","bad"
二重引用符の間の「,」を別のもの (「|」や「-」など) に置き換える方法は?
追加: ファイル サイズはほぼ 40M です。
私はCSVファイルを持っており、データは次のようなものです:
"asdd","12","good"
しかし、一部のデータは規制されていません。
"name1,name2","34","bad"
二重引用符の間の「,」を別のもの (「|」や「-」など) に置き換える方法は?
追加: ファイル サイズはほぼ 40M です。
この行を試してください:
%s/[^"]\zs,\ze[^"]/-/g
の前後のスペースを処理 (削除) したい場合,
、例えば:
"name1, name2","34","bad"
"asdd","12","good"
"name1, name2 ,name3","34","bad"
実行できます:
%s/[^"]\zs\s*,\s*\ze[^"]/-/g
上記の例を次のように変更します。
"name1-name2","34","bad"
"asdd","12","good"
"name1-name2-name3","34","bad"
問題を正しく理解していれば、次のコマンドで問題が解決するはずです
:%s/\v([^"]),([^"])/\1-\2/g
,
で囲まれていないものは"
すべて置き換えます-
ここでは、すべてのcsvデータがで囲まれていると仮定しています"
サンプル入力:
"name1,name2","34","bad"
"asdd","12","good"
"name1,name2,name3","34","bad"
出力:
"name1-name2","34","bad"
"asdd","12","good"
"name1-name2-name3","34","bad"