Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 10/02/2015, à 19:21

TerminOS

[Résolu] Traitement de fichiers par ordre croissant

Bonjour @ tous,
J'ai besoin de concatener des fichiers issus de différents dossiers:
/dossier_1          ...                /dossier_5       
  |__> fichier_1                         |__> fichier_1
  |__>fichier_2                          |__>fichier_2
  |__> fichier_...                        |__> fichier_...
  |__> fichier_10                       |__> fichier_30
                                                |__> fichier_31
                                                |__> fichier_..
                                                |__> fichier_50

regrouper tous les fichiers dans un dossier de distination avec une numérotation successive:

Dossier_dist     
  |__> fichier_1 
  |__> fichier_..
  |__> fichier_1 0
  |__> fichier_11
  |__> fichier_12
  |__> fichier_..
  |__> fichier_40
  |__> fichier_41
  |__> fichier_..
  |__> fichier_60

J'ai réussi à avoir un résultat mais le contenu d'un fichier source n'est pas le même dans le fichier distination,
car dans la boucle:

 for file in *

les fichiers sont traité dans cet ordre:

fichier_1
ficher_10
fichier_11
...
...
fichier_2
ficher_21
fichier_22

et non ...

fichier_1
ficher_2
fichier_3
...
fichier_10
fichier_11
fichier_12
...
ficher_20
fichier_21
...

Quelqu'un a une idée comment procéder?

Merci d'avance.

Dernière modification par TerminOS (Le 11/02/2015, à 11:15)


Asus K46 CM Intel i5, 8Go de RAM, ubuntu 12.04 - Cinnamon

"L'Homme n'est rien sans les hommes, il vient dans leurs mains et s'en va dans leurs main" Seydou Badian.

Hors ligne

#2 Le 10/02/2015, à 19:43

pingouinux

Re : [Résolu] Traitement de fichiers par ordre croissant

Bonjour,
Essaye ceci

while read file; do echo "$file"; done < <(ls|sort -V)

Hors ligne

#3 Le 11/02/2015, à 00:32

TerminOS

Re : [Résolu] Traitement de fichiers par ordre croissant

pingouinux a écrit :

Bonjour,
Essaye ceci

while read file; do echo "$file"; done < <(ls|sort -V)

Merci énormément @pingouinux ça marche impeccablement bien, ça m'a permet de découvrir l'argument '-V' de la commande ' sort'.

Merci.


Asus K46 CM Intel i5, 8Go de RAM, ubuntu 12.04 - Cinnamon

"L'Homme n'est rien sans les hommes, il vient dans leurs mains et s'en va dans leurs main" Seydou Badian.

Hors ligne

#4 Le 11/02/2015, à 01:21

Watael

Re : [Résolu] Traitement de fichiers par ordre croissant

salut,

un simple printf ne suffirait-il pas ?

printf '%s\n' * | sort -V

Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#5 Le 11/02/2015, à 11:10

TerminOS

Re : [Résolu] Traitement de fichiers par ordre croissant

Watael a écrit :

salut,

un simple printf ne suffirait-il pas ?

printf '%s\n' * | sort -V

Salut,

printf '%s\n' * | sort -V

donne la même chose que

 ls| sort -V

Asus K46 CM Intel i5, 8Go de RAM, ubuntu 12.04 - Cinnamon

"L'Homme n'est rien sans les hommes, il vient dans leurs mains et s'en va dans leurs main" Seydou Badian.

Hors ligne