将CSV转换为TSV格式以进行Mongo导入

将CSV转换为TSV格式以进行Mongo导入,csv,command-line,Csv,Command Line,我有这个csv文件 0161-1#CT-00#1;Others;0 0161-1#CT-01#1;Class;1 0161-1#CT-02#1;Property;2 0161-1#CT-03#1;Feature;3 0161-1#CT-04#1;Representation;4 0161-1#CT-05#1;Unit of Measure;5 0161-1#CT-06#1;Qualifier of Measure;6 0161-1#CT-07#1;Property Value;7 0161-1#

我有这个csv文件

0161-1#CT-00#1;Others;0
0161-1#CT-01#1;Class;1
0161-1#CT-02#1;Property;2
0161-1#CT-03#1;Feature;3
0161-1#CT-04#1;Representation;4
0161-1#CT-05#1;Unit of Measure;5
0161-1#CT-06#1;Qualifier of Measure;6
0161-1#CT-07#1;Property Value;7
0161-1#CT-08#1;Currency;8
0161-1#CT-09#1;Data Type;9
当我运行此命令将带分号的csv转换为tsv文件时:

tr”;“\t”
在我的Mac上的终端中。它只打印出这样的文本,不保存文件

0161-1#CT-00#1  Others  0
0161-1#CT-01#1  Class   1
0161-1#CT-02#1  Property    2
0161-1#CT-03#1  Feature 3
0161-1#CT-04#1  Representation  4
0161-1#CT-05#1  Unit of Measure 5
0161-1#CT-06#1  Qualifier of Measure    6
0161-1#CT-07#1  Property Value  7
0161-1#CT-08#1  Currency    8
0161-1#CT-09#1  Data Type   9%                                                                                                                                                                                                            ➜  eotd-cleaned

因此,它看起来可以工作,但文件未保存。我需要在此命令行上添加什么才能将其保存到此文件或新文件?

许多小型unix文本处理工具设计为在管道中工作,并且假定最终用户将使用输出重定向创建新文件,即

tr ";" "\t" < testing.csv > testing.tsv
或者您可以使用重命名(
mv
)文件

tr ";" "\t" < testing.csv > testing.tsv && mv testing.tsv testing.csv
按键盘上的tab键,将命令中的
替换为实际的tab字符

在使用Mac电脑时,需要指定备份文件名作为
-i
的一部分,如

sed -i'' 's/;/<t>/g' testing.csv
sed-i''s///g'testing.csv
表示不真正创建备份文件。您可以对真正的备份文件执行
sed-i.bak

还有其他解决方案,所以请尝试在此处搜索“文件中的文本替换”

IHTH

sed -i 's/;/<t>/g' testing.csv
sed -i'' 's/;/<t>/g' testing.csv