この貼り付けコマンドの出力がインデント付きの別々の行に分割されるのはなぜですか?

この貼り付けコマンドの出力がインデント付きの別々の行に分割されるのはなぜですか?

次のコマンドを使用してファイルをマージしようとしています。

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

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

しかし、出力の列はキューに入れないでください。タブとスペースをきれいにしてみましたが、まだ同じ結果が得られます。以下は私のサンプルデータです。data_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

...そしてdata_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'

おすすめ記事