如何在Unix CSV文件的指定列中删除特定逗号?
解决CSV第3列内逗号删除问题
这里给你一个用awk的简洁解决办法,完美适配你的需求:
awk -F',' 'NR==1{print; next} {line=$1","$2; for(i=3;i<=NF;i++) line=line" "$i; print line}' input.csv
命令说明:
-F',':指定逗号作为字段分隔符NR==1{print; next}:第一行是表头,直接原样输出,跳过后续处理逻辑- 数据行处理:先把前两列用逗号拼接好,再把从第3列开始的所有被错误拆分的内容用空格连接起来,最后输出整行
如果你的需求是直接删除第3列内的逗号而不是替换成空格,把命令里的" "$i改成$i即可:
awk -F',' 'NR==1{print; next} {line=$1","$2; for(i=3;i<=NF;i++) line=line$i; print line}' input.csv
用你的测试文件跑第一个命令,就能得到你期望的输出结果。
内容的提问来源于stack exchange,提问作者Ma28
相关产品推荐
相关产品推荐

