Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/10/2006, 15h14   #1
Membre du Club
 
Avatar de domiq44
 
Inscription : novembre 2005
Messages : 203
Détails du profil
Informations personnelles :
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : novembre 2005
Messages : 203
Points : 51
Points : 51
Par défaut Lister des fichiers archives

Bonjour,

Comment lister les fichiers archives (.tar), compressés ou pas (.Z) présents uniquement dans un répertoire données (pas dans les sous-répertoires), sachant que leur nom respecte la format suivant : 99999.tar[.Z] (exemple: 12345.tar ou 45678.tar.Z) ?

La solution suivante fonctionne mais présente le gros inconvénient d'afficher une erreur si auscun fichier n'est présent, ce que je ne désire pas :

Code :
ls toto/*tar* | grep "[^a-zA-Z][0-9]\{5\}\.tar" 2> /dev/null
Merci.
domiq44 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2006, 15h22   #2
Membre Expert
 
Avatar de 2Eurocents
 
Inscription : septembre 2004
Messages : 2 180
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : septembre 2004
Messages : 2 180
Points : 2 442
Points : 2 442
Je serai tenté d'aller essayer du côté de find ...

Un truc dans le genre :
Code :
find toto -regex "[^a-zA-Z][0-9]\{5\}\.tar" -print
(non testé)
__________________
La FAQ Perl est par ici
: La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !
2Eurocents est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2006, 15h25   #3
Membre du Club
 
Avatar de domiq44
 
Inscription : novembre 2005
Messages : 203
Détails du profil
Informations personnelles :
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : novembre 2005
Messages : 203
Points : 51
Points : 51
Citation:
Envoyé par 2Eurocents
Je serai tenté d'aller essayer du côté de find ...

Un truc dans le genre :
Code :
find toto -regex "[^a-zA-Z][0-9]\{5\}\.tar" -print
(non testé)
Hélas non !

La commande find explore le répertoire toto ainsi que tous ses sous-répertoires !!!
domiq44 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2006, 15h27   #4
Membre Expert
 
Avatar de 2Eurocents
 
Inscription : septembre 2004
Messages : 2 180
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : septembre 2004
Messages : 2 180
Points : 2 442
Points : 2 442
Citation:
Envoyé par domiq44
Hélas non !

La commande find explore le répertoire toto ainsi que tous ses sous-répertoires !!!
Alors, ajoutons lui le prédicat "-maxdepth 1".
__________________
La FAQ Perl est par ici
: La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !
2Eurocents est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2006, 15h32   #5
Membre du Club
 
Avatar de domiq44
 
Inscription : novembre 2005
Messages : 203
Détails du profil
Informations personnelles :
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : novembre 2005
Messages : 203
Points : 51
Points : 51
Citation:
Envoyé par 2Eurocents
Alors, ajoutons lui le prédicat "-maxdepth 1".
La ce serait en effet okay si je ne devais pas ajouter que je suis sous KSH et non BASH !!! (sniff)

Merci quand même
domiq44 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2006, 15h43   #6
Membre Expert
 
Avatar de 2Eurocents
 
Inscription : septembre 2004
Messages : 2 180
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : septembre 2004
Messages : 2 180
Points : 2 442
Points : 2 442
Citation:
Envoyé par domiq44
La ce serait en effet okay si je ne devais pas ajouter que je suis sous KSH et non BASH !!! (sniff)
ksh ou bash n'ont pas d'influence sur le comportement de find qui est une commande externe.

Si ta version de find ne supporte pas -maxdepth, il me semble qu'il reste des possibilités au moyen de -prune.

Je vais essayer de rassembler mes souvenirs à ce sujet.
__________________
La FAQ Perl est par ici
: La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !
2Eurocents est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2006, 15h50   #7
Membre du Club
 
Avatar de domiq44
 
Inscription : novembre 2005
Messages : 203
Détails du profil
Informations personnelles :
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : novembre 2005
Messages : 203
Points : 51
Points : 51
Citation:
Envoyé par 2Eurocents
ksh ou bash n'ont pas d'influence sur le comportement de find qui est une commande externe.

Si ta version de find ne supporte pas -maxdepth, il me semble qu'il reste des possibilités au moyen de -prune.

Je vais essayer de rassembler mes souvenirs à ce sujet.
Tu as raison, l'option -prune fonctionne.

Par contre l'option -regex, ça il ne connait pas
domiq44 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h51.


 
 
 
 
Partenaires

Hébergement Web