次のファイル名を持つフォルダがある場合:
cluster_sizes_0.txt
cluster_sizes_1.txt
cluster_size_2.txt
など。
各ファイルには値の列が含まれています。
LinuxにすべてのファイルをCluster_all.txtにマージするコマンドはありますか?
この新しいファイルの最初の列はに対応し、2番目の列は等に対応cluster_sizes_0.txt
します。cluster_sizes_1.txt
クラスタ化されたtxtファイルは最大200個まで存在できますが、各フォルダは異なります。これらのファイルを1つずつコピーせずに組み合わせることができる方法を探しています。
また、ファイルに順番に貼り付けられていることを確認する必要があります。 10未満の場合は1桁の数字しか含まれていないため、番号付けシステムにはいくつかの問題が発生する可能性があります。
たとえば、
paste cluster_size.* > cluster_all.txt
番号付けの問題により、順番に貼り付けられませんでした。すべての番号を手動で変更せずに番号付けを変更するにはどうすればよいですか?
ベストアンサー1
このコマンドはpaste
列を一緒にマージします。たとえば、次の3つのファイルがある場合は、貼り付けると良い結果が得られます。
$ cat file_1.txt
1a
1b
1c
$ cat file_2.txt
2a
2b
2c
$ cat file_3.txt
3a
3b
3c
$ paste -d, file_1.txt file_2.txt file_3.txt
1a,2a,3a
1b,2b,3b
1c,2c,3c
今問題は実際にファイルを順番にインポートする方法です。私たちはだまされ、ls
他の人が私たちのために働くことができます
$ ls
file_1.txt file_13.txt file_17.txt file_20.txt file_6.txt
file_10.txt file_14.txt file_18.txt file_3.txt file_7.txt
file_11.txt file_15.txt file_19.txt file_4.txt file_8.txt
file_12.txt file_16.txt file_2.txt file_5.txt file_9.txt
$ ls -v
file_1.txt file_5.txt file_9.txt file_13.txt file_17.txt
file_2.txt file_6.txt file_10.txt file_14.txt file_18.txt
file_3.txt file_7.txt file_11.txt file_15.txt file_19.txt
file_4.txt file_8.txt file_12.txt file_16.txt file_20.txt
$ paste -d, $(ls -v file_*.txt)
1a,2a,3a,4a,5a,6a,7a,8a,9a,10a,11a,12a,13a,14a,15a,16a,17a,18a,19a,20a
1b,2b,3b,4b,5b,6b,7b,8b,9b,10b,11b,12b,13b,14b,15b,16b,17b,18b,19b,20b
1c,2c,3c,4c,5c,6c,7c,8c,9c,10c,11c,12c,13c,14c,15c,16c,17c,18c,19c,20c
今、解析はls
一般的に悪いものです。予期しないファイル名や奇妙な文字(スペース、ワイルドカードなど)があると、スクリプトがクラッシュする可能性があります。しかし、ファイル名が「ok」であると確信している場合、これはうまくいくでしょう。