如何将带有逗号分隔值的 .dat 文件转换为 .csv 文件?

如何将带有逗号分隔值的 .dat 文件转换为 .csv 文件?

我有一个.dat这样的文件。

    Name, Age, Place, Country
    A, 1, Ch, In
    B, 2, Ch, In
    C, 3, , In

我想将其转换为 .csv 文件姓名、年龄、地点和国家作为标题。

怎么做?

答案1

假设您的文件包含太多空白和空行,您可以使用awkcsvformat从 csvkit 包中删除它们:

$ cat file

    Name, Age, Place, Country

    A, 1, Ch, In

    B, 2, Ch, In

    C, 3, , In
$ awk 'NF' file | csvformat -S
Name,Age,Place,Country
A,1,Ch,In
B,2,Ch,In
C,3,,In

awk命令首先读取原始数据,并仅输出包含由空格分隔的非空白内容的行。这消除了空行。

然后,该csvformat命令将剩余数据重新格式化为格式正确的 CSV 数据集。-S( )选项--skipinitialspace删除包含它们的字段中的初始空格。

这一切都假设您的数据不包含嵌入逗号或换行符的字段。

答案2

您的.dat文件已经以逗号分隔,因此将后缀更改为.csv应该就足够了。

如果你想删除空格和空行,你可以这样做:

cat input.txt | sed 's/ //g' | grep -v '^$' > output.txt

相关内容