data_export_20130206-F.csv という名前の csv ファイルがあります。二重引用符 (") を含むデータが含まれているため、解析が非常に面倒です。
ファイルは次のようになります (ただし、より多くのフィールドがあります)
"stuff","zipcode"
"<?xml version="1.0" encoding="utf-8" ?>","90210"
フィールド内の引用符を「エスケープ」したいので、次のようになります (注: xml 内の引用符は 2 倍になっています)。
"stuff","zipcode"
"<?xml version=""1.0"" encoding=""utf-8"" ?>","90210"
しかし、これを実行すると:
cat data_export_20130206-F.csv| sed -E 's@([^,])(\")([^,])@\1""\3@g'
残念ながら、各行の末尾に二重引用符が追加され、ドキュメントが無効になります。
"stuff","zipcode""
"<?xml version=""1.0"" encoding=""utf-8"" ?>","90210""
csv フィールド内の二重引用符を置き換え、各行の末尾に二重引用符を追加しないようにするにはどうすればよいですか?