我有一个.dat
这样的文件。
Name, Age, Place, Country
A, 1, Ch, In
B, 2, Ch, In
C, 3, , In
我想将其转换为 .csv 文件姓名、年龄、地点和国家作为标题。
怎么做?
答案1
假设您的文件包含太多空白和空行,您可以使用awk
和csvformat
从 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