为什么此粘贴命令的输出会分成带有缩进的单独行?

为什么此粘贴命令的输出会分成带有缩进的单独行?

我试图使用以下命令合并文件:

paste data_{1..2}.txt > 1_2.txt

paste <(awk '{print $1}' data_2.txt ) <(awk '{print $1}' data_2.txt) > 1_2.txt

但输出中的列不要排队。我尝试清理制表符和空格,但仍然得到相同的结果。下面是我的示例数据数据_1.txt:

TMAX
34.2481
19.1582
-0.903817
-0.408851
-0.849964
0.596377
0.922126
-5.13179
-17.4449
-15.1031
-12.5849
-12.2548

...并且为了数据_2.txt:

TMAX
33.629
18.5924
-1.37411
-1.00714
-1.48201
0.0046866
0.295162
-5.69127
-18.0672
-15.7163
-13.1048
-12.8443
-11.9689

合并后的输出:

TMAX
    TMAX
34.2481
    33.629
19.1582
    18.5924
-0.903817
    -1.37411
-0.408851
    -1.00714
-0.849964
    -1.48201
0.596377
    0.0046866
0.922126
    0.295162
-5.13179
    -5.69127
-17.4449
    -18.0672
-15.1031
    -15.7163

当然,预期的列应该像这样排列:

TMAX    TMAX
34.2481 33.629
19.1582 18.5924
-0.903817   -1.37411
-0.408851   -1.00714
-0.849964   -1.48201
0.596377    0.0046866
0.922126    0.295162
-5.13179    -5.69127
-17.4449    -18.0672
-15.1031    -15.7163
-12.5849    -13.1048
-12.2548    -12.8443
-11.371 -11.9689

为什么我会得到带有线条分割和缩进的扭曲输出?

答案1

您的文件似乎包含一些特殊字符,例如回车符\r\n。您可以使用以下方法进行检查:

cat -et file

如果有,您应该\r在使用前删除paste

tr -d '\r'

相关内容