GNU/Linux >> Linux Esercitazione >  >> Linux

File Cat in un ordine specifico in base al numero nel nome del file?

Ho file chiamati file.88_0.pdb , file.88_1.pdb , ... , file.88_100.pdb . Voglio cat in modo che file.88_1.pdb viene incollato dopo file.88_0.pdb , file.88_2.pdb dopo file.88_1.pdb , e così via. Se eseguo cat file.88_*.pdb > all.pdb , i file sono riuniti nel seguente ordine:0 1 10 11 12 13 14 15 16 17 18 19 2 20... , ecc. Come li metto insieme in modo che l'ordine sia 0 1 2 3 4 5 6... ?

Risposta accettata:

Usa brace expansion

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

Per ignorare la stampa dei messaggi di errore per file inesistenti utilizzare:

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

Nel zsh shell hai anche il (n) qualificatore globbing per richiedere un numerico ordinamento (in contrasto con l'impostazione predefinita di alfabetico ) per i glob:

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

Linux
  1. Come dividere un singolo file in più file in base alle righe

  2. Ordine di reindirizzamento?

  3. Concatenare file specifici in un unico file?

  4. Come nascondere i file con un'estensione specifica?

  5. Usa il comando fallocate per creare file di dimensioni specifiche in Linux

Come eseguire il tar di tipi di file specifici (estensioni) in una directory

Come copiare file con estensione di file specifica in modo ricorsivo

Come escludere un'estensione di file specifica durante la copia ricorsiva di file

Come trovare file basati su timestamp in Linux

Come trovare file contenenti una stringa di testo specifica in Linux

Un modo semplice per unire i file con il comando Cat