GNU/Linux >> Tutoriels Linux >  >> Linux

Fichiers Cat dans un ordre spécifique basé sur le numéro dans le nom de fichier ?

J'ai des fichiers nommés file.88_0.pdb , file.88_1.pdb , ... , file.88_100.pdb . Je veux cat de sorte que file.88_1.pdb est collé après file.88_0.pdb , file.88_2.pdb après file.88_1.pdb , etc. Si je fais cat file.88_*.pdb > all.pdb , les fichiers sont regroupés dans l'ordre suivant :0 1 10 11 12 13 14 15 16 17 18 19 2 20... , etc. Comment puis-je les assembler pour que l'ordre soit 0 1 2 3 4 5 6... ?

Réponse acceptée :

Utiliser l'brace expansion

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

Pour ignorer l'impression des messages d'erreur pour les fichiers inexistants, utilisez :

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

Dans le zsh shell vous avez aussi le (n) qualificatif global pour demander un numérique tri (par opposition à la valeur par défaut de alphabétique ) pour les globs :

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

Linux
  1. Comment diviser un seul fichier en plusieurs fichiers en fonction des lignes

  2. Ordre des redirections ?

  3. Comment masquer les fichiers avec une extension spécifique ?

  4. Comment diviser les fichiers CSV en fonction du nombre de lignes spécifié ?

  5. Chat récursif tous les fichiers en un seul fichier

Comment tarer des types de fichiers spécifiques (extensions) dans un répertoire

Comment copier des fichiers avec une extension de fichier spécifique de manière récursive

Comment exclure une extension de fichier spécifique lors de la copie récursive de fichiers

Comment trouver des fichiers basés sur l'horodatage sous Linux

Comment trouver des fichiers contenant une chaîne de texte spécifique sous Linux

Un moyen facile de fusionner des fichiers avec la commande Cat