GNU/Linux >> Znalost Linux >  >> Linux

Soubory Cat ve specifickém pořadí na základě čísla v názvu souboru?

Mám soubory s názvem file.88_0.pdb , file.88_1.pdb , ... , file.88_100.pdb . Chci cat tak, že file.88_1.pdb se vloží za file.88_0.pdb , file.88_2.pdb za file.88_1.pdb , a tak dále. Pokud udělám cat file.88_*.pdb > all.pdb , soubory se skládají v tomto pořadí:0 1 10 11 12 13 14 15 16 17 18 19 2 20... , atd. Jak je dám dohromady, aby objednávka byla 0 1 2 3 4 5 6... ?

Přijatá odpověď:

Použijte brace expansion

cat file.88_{0..100}.pdb >>bigfile.pdb

Chcete-li ignorovat tisk chybových zpráv pro neexistující soubory, použijte:

cat file.88_{0..100}.pdb >>bigfile.pdb 2>/dev/null

V zsh shell také máte (n) globbing kvalifikátor pro vyžádání numerického řazení (na rozdíl od výchozího abecedního ) pro globy:

cat file.88_*.pdb(n) >>bigfile.pdb 2>/dev/null

Linux
  1. Jak skrýt soubory s konkrétní příponou?

  2. Použijte příkaz fallocate k vytvoření souborů specifické velikosti v Linuxu

  3. 10 příkladů příkazů Cat pro správu souborů v systému Linux / UNIX

  1. Jak získat pouze počet řádků souboru

  2. Rekurzivní kat všechny soubory do jednoho souboru

  3. Největší povolený maximální počet otevřených souborů v Linuxu

  1. Jak rozdělit jeden soubor do více souborů na základě řádků

  2. Pořadí přesměrování?

  3. Zřetězit konkrétní soubory do jednoho jediného souboru?