我有一个用逗号分隔的数据集,如下所示。
882710454,122.00
883710414,122.00
888710514,122.00
888,710,414,122.00
但是,数据集中有一些特定的行,每3个字符后会出现逗号(检查上面的第4行),这使得无法将数据导入postgres数据库。我想删除每3个字符后出现的逗号,只保留有效分隔符的逗号。
请注意,我正在处理一个巨大的数据集,这使得逐行删除逗号是不可能的。我需要一个可以在vi或nano中执行此操作的全局命令。
请协助。
发布于 2014-10-22 00:04:55
您需要在vi中使用正则表达式和全局查找和替换:
:%s/,\(\d\{3}\),/\1/g解释:
%s代表搜索,replace/启动搜索part,\(\d\{3}\),匹配逗号+三个数字+逗号(%s表示转义并结束搜索部分,启动替换part\1匹配搜索中的三个数字part/结束替换partg用于全局替换(在整个文件中)发布于 2014-10-21 23:51:18
vi:
:%s/^\([0-9]\{3\}\),\([0-9]\{3\}\),\([0-9]\{3\}\),/\1\2\3,/https://stackoverflow.com/questions/26490805
复制相似问题