我有一个用逗号分隔的数据集,如下所示。
882710454,122.00
883710414,122.00
888710514,122.00
888,710,414,122.00
但是,数据集中的特定行在每3个字符后出现逗号(上面的第4行检查),因此无法将数据导入postgres数据库。我想删除每3个字符后出现的逗号,并且只保留逗号作为有效分隔符。
请注意,我正在处理庞大的数据集,因此无法逐行删除逗号。我需要一个可以在vi或nano中执行此操作的全局命令。
请协助。
答案 0 :(得分:2)
您需要在vi中使用正则表达式和全局查找和替换:
:%s/,\(\d\{3}\),/\1/g
说明:
%s
用于搜索和替换/
启动搜索部分,\(\d\{3}\),
匹配逗号+三个数字+逗号(\
是转义字符)/
结束搜索部分,启动替换部分\1
匹配搜索部分中的三个数字/
结束替换部分g
用于全局替换(在整个文件中)答案 1 :(得分:0)
VI:
:%s/^\([0-9]\{3\}\),\([0-9]\{3\}\),\([0-9]\{3\}\),/\1\2\3,/