【发布时间】:2021-09-24 09:31:03
【问题描述】:
我有以下记录到 txt 文件中。
000D3A|"RiFR Botnets" AD||83634C|dk
000D3|Ries Bidvest" AD||8364A3C|dhh
000D3A|"Ra Boots D"||83634C|gft
在这里,我想使用 AWK Unix 命令为那些在行中包含 " 的记录添加双引号。
我想写入文件的预期输出:
000D3A|""RiFR Botnets" AD"||83634C|dk
000D3|"Ries Bidvest" AD"||8364A3C|dhh
000D3A|""Ra Boots""||83634C|gft
我尝试过使用 AWS 命令和 AWK -F "|"但是我如何在文件的每一行中搜索双引号“”。
【问题讨论】:
-
您可能还需要将这些字段中现有的
"s 加倍。否则,由于只影响第二个字段,请尝试sed -E 's/(^|\|)([^|]*"[^|]*)($|\|)/\1"\2"\3/' file -
请在您的问题中添加您尝试过的代码,谢谢。
-
""Ries Bidvest" AD"和"Ries Bidvest" AD"和""Ra Boots""会将您的文件变成不再有效的 CSV 文件,从而破坏您的文件。您可能需要"Ries Bidvest"" AD"或 ``"""Ries Bidvest"" AD"""` ` 和"Ries Bidvest"" AD"的组合,然后是"Ra Boots"或"""Ra Boots"""。 -
这似乎与您几个小时前在stackoverflow.com/q/68383086/1745001 提出的问题相同,该问题因未尝试自己先解决而被关闭。