すべてのファイルを1つのファイルに結合しますか?

すべてのファイルを1つのファイルに結合しますか?

すべてのテキストファイルを1つのファイルにマージしようとしています。すべてのテキストファイルには1つの列と同じ数の行があります。私のデータファイル名はdata_1.txt、data_2.txt、data_3.txt、。 。 data_n.txt.ここで、nはマージするテキストファイルの数です。 1からnまで順番にマージしたいです。次のコードを試しましたが、目的の方法で機能しません。列の順序を維持しません。

私のサンプルデータは次のとおりです

data_1.txt

0.020085
0.0017361
0.77963
0.98659
0.33102
0.099835
0
0
0.073004
0.29978

data_2.txt

0.021407
0.0017191
0.82385
1.0449
0.34593
0.10535
0
0
0.078362
0.31509

data_3.txt

0.022706
0.0016876
0.85447
1.0922
0.35556
0.11063
0
0
0.083983
0.32536

希望の出力

組み合わせ.txt

0.020085    0.021407    0.022706
0.0017361   0.0017191   0.0016876
0.77963 0.82385 0.85447
0.98659 1.0449  1.0922
0.33102 0.34593 0.35556
0.099835    0.10535 0.11063
0   0   0
0   0   0
0.073004    0.078362    0.083983
0.29978 0.31509 0.32536

私の問題を解決するのに役立ちますか?

#!/bin/bash
paste data_*.txt > combined.txt

ベストアンサー1

を使用すると、zshglob修飾子を使用してファイル名が生成される順序に影響を与えることができます。

paste file_*.txt(n)

開く予定です数字入れて並べ替えるfile_10.txt 後ろに file_9.txt

ファイルがCR文字(Microsoftの世界からインポートされたかのように)で終わると、その文字はターミナルに出力するとカーソルが最初の列に移動します。

したがって、埋め込みファイルの場合A\rB\rC\rn(MS-DOS形式のファイルが3つある場合に発生paste)、上記の内容をパイピングしてCR文字を削除できますcat that-fileCtr -d '\r'

おすすめ記事