我正在使用流编辑器sed将大量文本文件数据(400MB)转换为csv格式.
我已经非常接近完成,但突出的问题是引号内的引号,对于这样的数据:
1,word1,"description for word1","another text",""text contains "double quotes" some more text"
2,word2,"description for word2","another text","text may not contain double quotes, but may contain commas ,"
3,word3,"description for "word3"","another text","more text and more"
Run Code Online (Sandbox Code Playgroud)
所需的输出是:
1,word1,"description for word1","another text","text contains double quotes some more text"
2,word2,"description for word2","another text","text may not contain double quotes, but may contain commas ,"
3,word3,"description for word3","another text","more text and more"
Run Code Online (Sandbox Code Playgroud)
我一直在寻找帮助,但我没有太接近解决方案,我尝试了以下seds与正则表达式模式:
sed -i 's/(?<!^\s*|,)""(?!,""|\s*$)//g' *.txt
sed -i 's/(?<=[^,])"(?=[^,])//g' *.txt
Run Code Online (Sandbox Code Playgroud)
这些来自以下问题,但似乎不适用于sed:
原始文件是*.txt,我正在尝试用sed编辑它们.