csv 使用“替换”命令删除双引号字符串中的双引号

s8vozzvw  于 2023-06-27  发布在  其他
关注(0)|答案(2)|浏览(167)

源代码在CSV文件中提供了带有额外双引号的几行。
要将附加的双引号替换为管道(|)(例如,下面的“G”和“Junior”),在处理数据之后将恢复为双引号。数值字段不带双引号,某些值带双引号。空白值在双引号中定义。

1,"abc","Class (""G"") as agreed , with new Value x",7004,"rec"
2,"prq","Promoting ""Junior"" to Senior, showing good results","",x

结果应为:

1,"abc","Class (|G|) as agreed , with new Value x",7004,rec
2,"prq","Promoting |Junior| to Senior, showing good results","",x

我们必须使用Copy命令通过ADF管道处理CSV文件。每个文件包含1个mill+记录。SFTP --> ADLS -->数据库。我们需要解决这个额外的双引号问题,同时处理文件从ADLS到数据库。
我们不使用JSON或数据块或Python。它只是一个加载到数据库简单文件。
尝试了以下解决方案--下面的链接替换了双引号内的逗号,但试图根据要求更改它,但没有运气,
(“[^",]+)""([^"]+”)
regex to remove comma between double quotes notepad++
先谢谢你。

2skhul33

2skhul331#

您应该使用CSV感知工具。其中一个是Miller
跑步

mlr --csvlite -N put '$3=gsub($3,"\"\"","|")' input.csv

你得到

1,"abc","Class (|G|) as agreed , with new Value x",7004,"rec"
2,"prq","Promoting |Junior| to Senior, showing good results","",x

一些注意事项:

  • -N设置为无标题CSV;
  • put是运行单元格函数的动词;
  • gsub运行全局搜索和替换的函数;
  • $3将其应用于第三字段。

您的CSV有一些不必要的引号。最好是有

1,abc,"Class (|G|) as agreed , with new Value x",7004,rec
2,prq,"Promoting |Junior| to Senior, showing good results",,x

要使用米勒获取它,您可以将格式从csvlite更改为csv,然后运行

mlr --csv -N put '$3=gsub($3,"\"","|")' input.csv
dwbf0jvd

dwbf0jvd2#

感谢您提供的所有答复和解决方案。
已通过更改ADF管道复制活动的以下设置修复此问题。
[Copy活动设置更改]

相关问题