Este é o comando que você precisa, finalmente, se seu objetivo é mesclar esses arquivos em ordem numérica. Use a expansão da cinta de shell .
cat anacovis2_{1..2181}_summary_betai_reg.out_new >> one_file
Eu tenho uma pasta chamada baypass que contém 2181 arquivos, se parece com isso (apenas alguns arquivos como um exemplo):
anacovis2_210_summary_betai_reg.out_new
anacovis2_2110_summary_betai_reg.out_new
anacovis2_2111_summary_betai_reg.out_new
anacovis2_2112_summary_betai_reg.out_new
Eu quero ter todos eles classificados, então usei
ls -v -1
que fez o trabalho de classificação para mim, mas eu quero ter esses arquivos classificados salvos em um diretório. Então, quando eu digito "ls -v -1", os arquivos ficam ordenados, mas se eu digitar pwd ou ls ou qualquer outro comando, eles não serão classificados novamente. Então, como posso salvar os arquivos classificados? Eu quero que eles sejam classificados e salvos para poder mesclá-los. A ordem dos arquivos é muito importante.
Este é o comando que você precisa, finalmente, se seu objetivo é mesclar esses arquivos em ordem numérica. Use a expansão da cinta de shell .
cat anacovis2_{1..2181}_summary_betai_reg.out_new >> one_file
Em zsh
, você faria:
files=(*.out_new(n))
(n)
sendo um qualificador glob que faz com que o glob seja ordenado numericamente (também pode ser alternado globalmente para todos os globs com set -o numericglobsort
).
E então:
do-something-with $files
Em bash
, ksh93
ou mksh
(ou zsh
) você pode armazenar os arquivos listados por esse GNU ls
em uma matriz com:
eval "list=($(ls -v --quoting-style=shell-always))"
do-something-with "${files[@]}"
Você pode usar um alias:
alias ls='ls -1v'
Tags ls text-processing