Concatena arquivos em ordem com o tipo

1

Estou tentando usar este comando:

type *.dump > total

para concatenar meus arquivos .dump no total.

No entanto, a numeração da concatenação está errada. Por exemplo, os arquivos em ordem são:

cascade1.dump cascata10.dump cascata 11.dump

em oposição a 1, 2, 3, etc.

Alguém pode me ajudar a descobrir a numeração?

    
por Jackson Hart 03.08.2015 / 17:33

2 respostas

2

O GNU sort tem uma maneira de fazer classificação natural , chamada version sorting no caso:

-V, --version-sort          natural sort of (version) numbers within text

Então você pode fazer o seguinte:

$ ls foo*
foo0  foo1  foo10  foo11  foo12  foo13  foo14  
foo15  foo2  foo3  foo4  foo5  foo6  foo7  foo8  foo9

$ ls foo* | sort -V
foo0
foo1
foo2
foo3
foo4
foo5
foo6
foo7
foo8
foo9
foo10
foo11
foo12
foo13
foo14
foo15

$ ls foo* | sort -V | xargs cat > total
    
por 03.08.2015 / 18:21
4

Isso deve funcionar:

ls -rt *.dump | xargs cat > total

Ordena os arquivos * .dump por time antes da concatenação.

    
por 03.08.2015 / 17:39