como posso listar arquivos em ordem

2

Eu tinha um arquivo de 18GB que eu precisava baixar em uma conexão de internet que não fosse muito boa. Torrent não era uma opção. Então, arrastei o arquivo em 100 segmentos e, eventualmente, baixei tudo. Agora eu preciso colocar os arquivos juntos novamente, usando um programa que é como o gato.

Por isso, preciso listar os arquivos em ordem de contagem e concatená-los. Os FileNames são algo como SomeFile1.dcd, SomeFile2.dcd, SomeFile3.dcd SomeFile10.dcd, ... SomeFile100.dcd

para que a concatenação funcione corretamente, eu preciso listar os arquivos em ordem numérica normal, caso contrário os quadros ficarão todos estragados.

como posso listar os arquivos em ordem numérica normal 1,2,3,4 ....?

    
por j0h 30.07.2015 / 04:33

4 respostas

6

Usando a expansão bash brace:

cat SomeFile{1..100}.dcd >final_file

Você pode verificar primeiro quais arquivos estão sendo expandidos:

echo SomeFile{1..100}.dcd

Aqui {1..100} será expandido para 1,2,3....100 .

Exemplo:

$ echo SomeFile{1..5}.dcd
SomeFile1.dcd SomeFile2.dcd SomeFile3.dcd SomeFile4.dcd SomeFile5.dcd
    
por heemayl 30.07.2015 / 04:38
2

perl também pode usar a sintaxe de expansão em loops:

perl -e 'print "SomeFile$_.dcd " for 1..100' > foo.txt
    
por Sylvain Pineau 30.07.2015 / 11:55
1

usando find e sort

find . -maxdepth 1 -type f -name "*.dcd" | sort -V
    
por A.B. 30.07.2015 / 12:05
0

Padrões globosos se expandirão para a lista ordenada de arquivos (e diretórios) correspondentes ao padrão globbing;

Se você tiver apenas esses arquivos em seu diretório de trabalho atual, simplesmente:

cat * > out

Ou se não houver outros arquivos / diretórios que comecem com "SomeFile":

cat SomeFile* > out

Ou se não houver outros arquivos / diretórios que terminem com ".dcd":

cat *.dcd > out

Além disso, em zsh , você pode incluir apenas arquivos regulares usando o padrão *(.) globbing:

cat *(.) > out
cat SomeFile*(.) > out
cat *(.).dcd > out
    
por kos 30.07.2015 / 13:28