Lister le contenu de plusieurs répertoires

Ka-El Messages postés 279 Statut Membre -  
 Utilisateur anonyme -
Bonjour,
Je cherche une commande unix qui va me permettre de lister uniquement les noms de fichier qui se trouvent dans les répertoires suivants:
/toto/new
/toto/new/tmp

Mon problème, c'est que la commande liste ne doit afficher que les fichiers dont le nom commence par Z* et dont le nombre de caractères ne dépassent pas "8"
Et pour finir, je dois éviter que mon listage affiche les arborescences dans lesquelles il effectue la recherche.
Au final, ma commande doit me donner un résultat de ce type en allant chercher dans les deux arborescences:
Zdghj5lm
Zn4567OP
Z2345678
Zhkm5790
etc...

Merci d'avance pour votre aide !
Ka-El
A voir également:

3 réponses

Utilisateur anonyme
 
salut,

ça se fait "facilement" avec la commande
find
.

fais quelques essais, et dis-nous où tu coinces.
0
zipe31 Messages postés 38797 Statut Contributeur 6 433
 
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
hello
$ find /toto/new -name "Z*" | awk -F / 'length($NF)<=8 {print $NF}'
# ou
$ find /toto/new -regextype posix-extended -regex ".*/Z.{1,8}" -printf "%f\n"
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
correction
find /toto/new -regextype posix-extended -regex ".*/Z.{1,7}" -printf "%f\n"
0
Ka-El Messages postés 279 Statut Membre > dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention  
 
Salut Dubcek,
Merci pour ton aide précieuse.
Effectivement tes deux exemples fonctionnent très bien, c'est nickel !

En revanche, penses-tu qu'il soit possible de procéder au même listage en utilisant la commande "ls" + options ?
Sachant que je peux m'autoriser ce type d'affichage :
-rw-r----- 1 user groupe 0 janv. 26 13:48 /toto/new/tmp/Zdghj5lm
-rw-r----- 1 user groupe 0 janv. 26 13:48 /toto/new/tmp/Zn4567OP
-rw-r----- 1 user groupe 0 janv. 26 13:48 /toto/new/Z2345678
-rw-r----- 1 user groupe 0 janv. 26 13:48 /toto/new/tmp/Zhkm5790
-rw-r----- 1 user groupe 0 janv. 26 13:48 /toto/new/Z76GhjDp
etc ...

Mais bien évidemment avec toujours cette restriction sur les fichiers commençant par Z* et comptant au max 8 caractères ?
Merci bien.
Ka-El
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
essayer
$ commande  | awk -F / 'length($NF)<=8 && $NF ~ /^Z/ {print $NF}' 
0
Ka-El Messages postés 279 Statut Membre > dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention  
 
Bon, vu ma nullité en shell, j'ai failli conserver "commande" dans ma ligne ! ;-)

Non, mais j'ai essayé effectivement plusieurs types de "ls", mais ça ne donne aucun résultat.
D'ailleurs Est-ce que la commande "ls" est bien recommandée pour chercher dans deux arborescences différentes ? J'ai un doute...
0
Utilisateur anonyme
 
l'option
-printf
de
find
permet un affichage fin des données concernant les fichiers.

au pire, tu pourrais faire un
-exec
de
stat
, qui permet aussi de choisir (affichage fin) quelles données concernant les fichiers afficher.
0