我有一个5列的CSV文件,其中1列是整数值,如(1,564,4,789,9,765)。我需要从col3中删除“,”(逗号),其中整数值应该如下所示:(1564,4789,9865)。
尝试了各种方法使用“awf”和“sed”,但都不起作用。下面是示例输入和预期输出。输入CSV文件:
col1,col2,col3,col4,col5
Abcd,defg,"1,432",hjik,khuj
字符串
输出CSV文件:
col1,col2,col3,col4,col5
Abcd,defg,"1432",hjik,khuj
型
4条答案
按热度按时间xuo3flqw1#
这个正则表达式可能可以帮助你找到未加引号的字段:
字符串
然后用一个简单的替换,如
"\1"
,正确地引用它们。它查找“1-3个数字,后面跟着一些逗号和三个数字的序列”。
我说might是因为你只展示了一小部分数据,而且这只适用于用逗号分隔的数字。
我从这个破碎的CSV开始:
型
得到了这个
型
你可以在这里看到它的作用,regexr.com/7ht81:
x1c 0d1x的数据
这个小的Python程序将修复我的示例CSV:
型
6g8kf2rb2#
首先用
\r
替换你想保留的逗号,然后删除其他逗号。最后恢复逗号。字符串
编辑:正如Zach评论的那样,您可能希望将所有
\r
替换为|||||
。在Linux上,您只需要\n
字符,但在Windows上通常会生成csv格式。uqxowvwt3#
您应该使用CSV感知工具,如Miller。
跑步
字符串
你得到
型
put
是应用函数的动词。gsub
是将,
替换为col3
中的空值的函数ghhaqwfi4#
使用下面的空格、点或任何东西替换逗号
字符串