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 27/07/2010, à 18:26

bece

[resolu] nombre d'occurence d'un mot sur une seule ligne

Bonjour à tous,

Je cherche à faire quelque chose de tout bête : Compter le nombre de fois qu'il y a l'occurence '<photo ' dans un fichier xml ne comportant qu'une seule ligne.
Une des idées serait de passer par un script (mais bon ce serait trop simple tongue alors j'aimerais savoir si c'est possible en une ligne de commande.
J'ai essayé avec grep -c mais cela ne fonctionne pas, grep travaille par ligne on dirait.

Merci d'avance à tous,
bece

Dernière modification par bece (Le 28/07/2010, à 08:31)


"L'informatique, c'est l'art de passer 15 jours à gagner 5 millisecondes"

Hors ligne

#2 Le 27/07/2010, à 18:50

Totor

Re : [resolu] nombre d'occurence d'un mot sur une seule ligne

sed "s/\(<photo\)/\1\n/g" fichier.xml|grep -c "<photo"

-- Lucid Lynx --

Hors ligne

#3 Le 27/07/2010, à 19:16

bece

Re : [resolu] nombre d'occurence d'un mot sur une seule ligne

Whoa, comment fonctionne la partie \1\n du sed?

En gros tu fais un retour à la ligne à chaque occurence ?

Dernière modification par bece (Le 27/07/2010, à 19:16)


"L'informatique, c'est l'art de passer 15 jours à gagner 5 millisecondes"

Hors ligne

#4 Le 27/07/2010, à 20:07

Totor

Re : [resolu] nombre d'occurence d'un mot sur une seule ligne

oui


-- Lucid Lynx --

Hors ligne

#5 Le 27/07/2010, à 21:52

bece

Re : [resolu] nombre d'occurence d'un mot sur une seule ligne

Ok, mais alors \1 veut dire quoi exactement ?


"L'informatique, c'est l'art de passer 15 jours à gagner 5 millisecondes"

Hors ligne

#6 Le 27/07/2010, à 22:12

chopinhauer

Re : [resolu] nombre d'occurence d'un mot sur une seule ligne

bece a écrit :

Ok, mais alors \1 veut dire quoi exactement ?

De la page info de sed:

`\DIGIT'
     Matches the DIGIT-th `\(...\)' parenthesized subexpression in the
     regular expression.  This is called a "back reference".
     Subexpressions are implicity numbered by counting occurrences of
     `\(' left-to-right.

\1 est remplacé par le contenu qui correspondait à la première parenthèse dans l'expression régulière de gauche.


Pensez à donner un bon titre à vos sujets : cela permettra d'aider d'autres utilisateurs dans votre même situation. Ce n'est pas qu'en donnant des solutions qu'on aide, mais aussi en posant des bonnes questions et… facilement trouvables.

Hors ligne

#7 Le 28/07/2010, à 08:30

bece

Re : [resolu] nombre d'occurence d'un mot sur une seule ligne

Merci pour l'info smile


"L'informatique, c'est l'art de passer 15 jours à gagner 5 millisecondes"

Hors ligne