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 11/02/2008, à 07:50

DrDam

selectionner plusieurs fichier à  partir de l'extension en bash

Bonjour je voudrais savoir comment d'un point de vue général comment on fait avec un script bash pour :

1-> selectionner tout les fichier  *.truc
2-> recupérer le nom de chaque fichier
3-> appliquer une action sur chacun de ces fichier


bon le petit 3 => ça dépend de ce qu'on veut faire

perso je penserai faire un "for each" sur les nom des ficheirs mais je ne sais pas si c'est implenté en bash ...


Tout ce qui a été crée par l'Homme devrait être patrimoine de l'humanité
Vous etes perdu ?, là ce sera trop loin

Hors ligne

#2 Le 11/02/2008, à 08:14

HymnToLife

Re : selectionner plusieurs fichier à  partir de l'extension en bash

for i in *.truc; do echo $i; done

Dernière modification par HymnToLife (Le 11/02/2008, à 08:14)


- Rodrigue, as-tu du cœur ?
- Non, mais j'ai du pique !

Hors ligne

#3 Le 12/02/2008, à 08:54

Aurel34

Re : selectionner plusieurs fichier à  partir de l'extension en bash

version récursive (cherche les sous reps):

 find . -name '*.truc' -exec echo {} \;

#4 Le 16/02/2008, à 09:32

DrDam

Re : selectionner plusieurs fichier à  partir de l'extension en bash

ok ça marche dans les deux cas

Mon (nouveau) problème : le $i correspond au "nom_du_fichier.flv" et je voudrais recuperer juste : "nom_du_fichier"


Tout ce qui a été crée par l'Homme devrait être patrimoine de l'humanité
Vous etes perdu ?, là ce sera trop loin

Hors ligne

#5 Le 16/02/2008, à 09:34

Aurel34

Re : selectionner plusieurs fichier à  partir de l'extension en bash

remplace $i par ${i%.truc} (suppression de suffixe)

#6 Le 16/02/2008, à 15:41

HymnToLife

Re : selectionner plusieurs fichier à  partir de l'extension en bash

Ou utilise basename :

firas@nobue ~ % for i in *.jpg; do echo $i; done
20080115-10.jpg
av-869.jpg
jenesuispasunange_01.jpg
jnspua_02.jpg
jnspua_03.jpg
jnspua_04.jpg
mann_holding_virginia_dec_0_60x60.jpg
mann_holding_virginia_dec_0.jpg
microsoft.jpg
firas@nobue ~ % for i in *.jpg; do basename $i .jpg; done
20080115-10
av-869
jenesuispasunange_01
jnspua_02
jnspua_03
jnspua_04
mann_holding_virginia_dec_0_60x60
mann_holding_virginia_dec_0
microsoft

- Rodrigue, as-tu du cœur ?
- Non, mais j'ai du pique !

Hors ligne

#7 Le 16/02/2008, à 16:48

Aurel34

Re : selectionner plusieurs fichier à  partir de l'extension en bash

mais basename ça vire pas le suffixe, si ?

sinon si tu as perl d'installé (ce qui est plus que probable) tu dois avoir le script rename qui sert justement à  renommer les fichiers

rename 's/\.truc$/\.machin$/' *.truc

renommera tous des fichier.truc en fichier.machin

#8 Le 16/02/2008, à 16:57

Aurel34

Re : selectionner plusieurs fichier à  partir de l'extension en bash

dans un genre intermédiaire t'as aussi:

find . -name '*.truc' | while read i; do echo "$i      ${i%.truc}.machin";done

#9 Le 16/02/2008, à 21:32

HTL_pas_loggé

Re : selectionner plusieurs fichier à  partir de l'extension en bash

Aurel34 a écrit :

mais basename ça vire pas le suffixe, si ?

Lis bien les messages auxquels tu réponds avant de parler...

#10 Le 16/02/2008, à 22:23

Aurel34

Re : selectionner plusieurs fichier à  partir de l'extension en bash

HTL_pas_loggé a écrit :
Aurel34 a écrit :

mais basename ça vire pas le suffixe, si ?

Lis bien les messages auxquels tu réponds avant de parler...

ok t'énerve pas, j'avais pas tout lu...
je me suis d'ailleurs inscrit pour pouvoir éditer depuis (mais celui là  je l'ai posté avant donc c'est mort hmm)

Dernière modification par Aurel34 (Le 16/02/2008, à 22:24)

Hors ligne