首页 > 解决方案 > 如何更改 CSV 文件的分隔符

问题描述

我需要将 csv 文件的分隔符从 comma(,) 更改为 Pipe(|) Symbol。

注意:这里的文件分隔符也出现在数据字符串中。我需要跳过那个值我尝试了一个命令但它也在改变内幕逗号awk '$1=$1' FS="," OFS=":" Sample.csv(我试过这个但没有给出预期的输出)

输入 > 样本.csv

Col1, Col2, Col3 , Col4
101, XYZ, 2020 , "Hello, World"
102, PQR, 2021, "Help, Me"

输出 > Sample_Out.csv 应该是这样的。

Col1| Col2| Col3|Col4
101 | XYZ | 2020 | "Hello, World"
102 | PQR |2021 | "Help, Me"

标签: bashunix

解决方案


您必须采取一些措施来处理这些引用的逗号。您可以开始将它们更改为其他内容:

awk -F'"' -v OFS='' '{ for (i=2; i<=NF; i+=2) gsub(",", "§", $i) } 1' Sample.csv

然后您可以将剩余的逗号更改为您想要的任何内容:

awk '$1=$1' FS="," OFS=":" Sample.csv

然后将 § 更改为它之前的逗号

awk '$1=$1' FS="§" OFS="," Sample.csv

我认为您可以制作一个 awk 文件并将所有步骤放入其中。


推荐阅读