O comando paste
mescla as colunas juntas. Então, por exemplo, se nós tivermos esses 3 arquivos, então colar irá criar um bom resultado:
$ 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
Então agora a questão é, realmente, como colocar os arquivos em ordem. Nós podemos trapacear e deixar ls
fazer o trabalho para nós
$ 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
Agora, tome cuidado, pois analisar ls
normalmente é uma coisa ruim. Se houver algum nome de arquivo inesperado ou caracteres estranhos (por exemplo, espaço em branco, globbing), ele poderá quebrar seu script. Mas se você está confiante de que os nomes dos arquivos são "bons", então isso funcionará.