Shell'tr'命令返回一个新的空行

时间:2017-09-22 08:02:48

标签: shell csv unix

我在Unix中遇到了trim命令的问题。我有一个从windows excel保存的original.csv文件,我希望移植到Unix中使用。从Windows保存的original.csv中的内容如下:

Func,Failing Cycle
rtg_generic_A_A1_N2_cb_TEST_1_sm32,859180
rtg_generic_A_A1_N3_cb_TEST_1_sm32,859180
rtg_generic_A_A3_N5_dw_cb_TEST_1_sm32,788581 

我想在其中修剪回车,所以我把命令:

tr '\r\n' '\n' < original.csv >trimmed.csv

但trimmed.csv里面的内容看起来像是:

Func,Failing Cycle

rtg_generic_A_A1_N2_cb_TEST_1_sm32,859180

rtg_generic_A_A1_N3_cb_TEST_1_sm32,859180

rtg_generic_A_A3_N5_dw_cb_TEST_1_sm32,788581

似乎在它们之间添加了额外的空行。我可以知道为什么以及如何摆脱这条空行?

由于

2 个答案:

答案 0 :(得分:3)

此命令:

tr '\r\n' '\n'` < file

会将\r的每个实例翻译为\n,因为tr逐字翻译。这将使每一行以2 \n结束。

要删除回车符,可以使用此tr命令:

tr -d '\r' < file

答案 1 :(得分:1)

要将行结尾从Windows转换为Unix,您还可以使用dos2unix命令