Hello,
Voici un petit problème auquel je suis confronté et j'aimerai avoir votre avis / aide si possible.
Soit une arborescence qui ressemble à ceci:
$ tree -d
.
├── reseau
│ ├── 10.0.0.28
│ │ ├── 2011-07-01
│ ├── 10.0.0.58
│ │ ├── 2011-06-30
│ ├── 10.0.130.10
│ │ ├── 2011-06-30
│ │ ├── 2011-07-01
└── serveurs
├── 10.0.128.29
│ ├── 2011-06-28
│ ├── 2011-06-29
│ ├── 2011-06-30
│ ├── 2011-07-01
├── 10.0.128.31
│ ├── 2011-06-28
│ ├── 2011-06-29
│ ├── 2011-06-30
│ ├── 2011-07-01
Je cherche à uniquement obtenir la liste des répertoires contenant une adresse IP.
J'ai donc essayé ceci:
$ zmodload zsh/pcre
$ for d in **/*(/e{'[[ $REPLY -pcre-match "^.*/\d\d?\d?\.\d\d?\d?\.\d\d?\d?\.\d\d?\d?$" ]]'}); do echo "-- $d"; done
-- reseau/10.0.0.28
-- reseau/10.0.0.58
-- reseau/10.0.130.10
-- serveurs/10.0.128.29
-- serveurs/10.0.128.31
Ça fonctionne comme attendu sauf que c'est crado et que j'aurai préféré faire ceci:
$ zmodload zsh/pcre
$ for d in **/*(/e{'[[ $REPLY -pcre-match "^.*/(\d{1,3}\.){3}\d{1,3}$" ]]'}); do echo "-- $d"; done
Et là, clairement, monsieur zsh n'aime pas voir des {1,3} et autres {3} à cet endroit et me le fait savoir assez brutalement !
zsh: unknown file attribute
Existe-t-il une solution ou une autre façon de faire ?
Merci pour votre aide.
# Trouvé...
Posté par GCN (site web personnel) . Évalué à 3.
Bon bah... Laissez tomber, j'ai trouvé ^^.
Solution trouvée en regardant des exemples sur cette page !
[^] # Re: Trouvé...
Posté par Zarmakuizz (site web personnel) . Évalué à 6.
Comme c'est dur à voir, je précise que le monsieur a changé les accolades par des underscores.
Commentaire sous licence LPRAB - http://sam.zoy.org/lprab/
# D'un Z qui veux dire zuper-concis
Posté par calandoa . Évalué à 2.
Et pourquoi pas plus simplement
print -l **/<0-255>(.<0-255>)(#c3)
?Qui doit nécessite extended_glob et une version récente à cause du globbing flag #c.
Ou peut être pour une plus vieille version (les deux derniers sont moins précis):
print -l **/<0-255>.<0-255>.<0-255>.<0-255>
print -l **/<0-255>(.<0-255>)##
print -l **/(<0-255>.#)##
[^] # Re: D'un Z qui veux dire zuper-concis
Posté par GCN (site web personnel) . Évalué à 1.
Pourquoi pas ? Ben ptet parce que, jusque là, j'utilisais bash et que je ne fais que découvrir la puissance de ZSH ^^.
Je note ça quelques part. Merci !
[^] # Re: D'un Z qui veux dire zuper-concis
Posté par calandoa . Évalué à 2.
Je ne peux que te conseiller de lire une fois http://zsh.sourceforge.net/Guide/ pour avoir une idée de ce qui existe, et de constamment garder ouvert http://zsh.sourceforge.net/Doc/Release/index-frame.html dans ton browser.
Ça n'est pas toujours facile à retrouver la bonne info, mais avec un peu d'habitude ça vient vite. Par ex, dans ce cas :
14. Expansion
14.8 Filename Generation (Globbing)
14.8.1 Glob Operators
14.8.4 Globbing Flags
[^] # Re: D'un Z qui veux dire zuper-concis
Posté par GCN (site web personnel) . Évalué à 1.
Merci pour ces petits liens bien sympatoches que je me suis empressé de mettre en bookmark... J'ai trouvé pas mal de choses concernant ZSH (suffisamment pour ne plus avoir envie de revenir à bash :) mais j'ai envie d'en apprendre un peu (beaucoup) plus.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.