如何在两个字符之间捕获多个新行?



我正在尝试匹配并删除引号之间的多个换行符以清理CSV文件。SED是我最熟悉的,但我很高兴使用任何假设我可以访问它。

例子
"ABC","This is
a
test
","1","2","This
is
another
test"

预期最终结果

"ABC","This is a test","1","2","This is another test"

我在regex101.com上尝试了多种模式,并环顾了"类似的问题",但似乎找不到任何能工作的东西。如有任何帮助,不胜感激。

您可以试试这个gnu awk:

awk -v RS='"[^"]+"' 'RT {gsub(/"n+|n+"/, """, RT); gsub(/n+/, " ", RT)} {ORS=RT} 1' file.csv
"ABC","This is a test","1","2","This is another test"

最新更新