Tenho arquivos nomeados file.88_0.pdb
, file.88_1.pdb
, ...
, file.88_100.pdb
. Eu quero que cat
eles file.88_1.pdb
colem depois file.88_0.pdb
, file.88_2.pdb
depois file.88_1.pdb
e assim por diante. Se sim cat file.88_*.pdb > all.pdb
, os arquivos são reunidos na seguinte ordem:, 0 1 10 11 12 13 14 15 16 17 18 19 2 20...
etc. Como os reunimos para que a ordem seja 0 1 2 3 4 5 6...
?
files
cat
text-formatting
nitrato de sódio
fonte
fonte
Respostas:
Usar
brace expansion
Para ignorar a impressão das mensagens de erro para arquivos inexistentes, use:
No
zsh
shell, você também tem o(n)
qualificador de globbing para solicitar uma classificação numérica (em oposição ao padrão alfabético ) para globs:fonte
ou, com relação ao comentário de Jesse_b:
fonte
No shell sem expansão de chaves, você pode usar
ls
+xargs
:ls classificará os arquivos em ordem numérica:
-v
tipo natural de (versão) números dentro do texto.fonte
Tentar:
Isso foi possível para
sort
os arquivos no-k2
segundo campo ( ) usando_
como separador. Aqui você tem que usar,>>
caso contrário, cada novo arquivo substituirá o último.fonte
0 1 10 11 12...
sort --version
o que recebe? E você tem o-n
comando de ordenação certo?sort (GNU coreutils) 5.93
/dev/null
adição à outra resposta era muito necessária!find ... | sort ... | xargs cat >> $output
vez disso.