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 05/10/2013, à 22:55

yoyostone

Petit problème avec grep

Bonjour a tous !
après plusieurs recherches non concluantes je me décide a venir poster mon problème ici ,
j'ai un fichier txt contenant un code html et je voudrais Tout enlever sauf les chaines de type data-video-id"*********"
en gros faire l'inverse de la fonction rechercher et remplacer
j'ai essayer de le faire avec grep dans un terminal en utilisant
cat monfic | grep -e  "data-video-id=............." >>teste.txt
mais mon fichier txt contient exactement le meme contenu que mon fichier d'origine hmm

Hors ligne

#2 Le 05/10/2013, à 23:48

Zakhar

Re : Petit problème avec grep

1- useless cat award (bon, ça à la limite c'est pas grave !)
2- grep travaille par ligne, c'est à dire par blocs séparés par un retour chariot. Or comme tu parles de HTML, HTML se fiche bien pas mal des retour chariot (c'est équivalent à une espace), et il est donc tout à fait possible que ton fichier HTML soit en fait sur une seule ligne. Par conséquent, si tu "matches" un bout de la ligne, il va te sélectionner toute la ligne et donc tout le fichier.

Conclusion : tu n'utilises pas le bon outil !..

Regarde plutôt du côté de sed... et bonne chance. tongue

Dernière modification par Zakhar (Le 05/10/2013, à 23:48)


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#3 Le 06/10/2013, à 00:08

yoyostone

Re : Petit problème avec grep

Le problème avec sed c'est qu'il fais justement la fonction rechercher et remplacer et que je n'ai rien trouver qui changerais ceci alors que le grep  -v recherche les lignes qui ne correspondent pas au motif ! du coup il faudrait utiliser la commande sed sur un grep -v mais c'est au dessus de mes compétences hmm

Hors ligne

#4 Le 06/10/2013, à 00:50

nesthib

Re : Petit problème avec grep

grep -oP 'data-video-id="[^"]+"' fichier

trouvera tous les « data-video-id="xxx" », quelque soit le contenu de « xxx » en excluant les « " ».


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#5 Le 06/10/2013, à 08:44

Zakhar

Re : Petit problème avec grep

yoyostone a écrit :

Tout enlever sauf ....

yoyostone a écrit :

... les lignes qui ne correspondent pas ....

Es-tu sûr de bien exprimer ce que tu veux faire ?

La première phrase est alambiquée, c'est une double négation. Tout enlever sauf, ça veut dire précisément garder le motif.
Dans l'autre cas tu dis au contraire que tu ne veux pas garder le motif.

Bref, déjà il faut exprimer clairement ce que tu souhaites faire, et tu verras que tu auras fait la moitié du travail !..

Aussi, lorsque c'est clairement exprimé, on arrive plus facilement à t'aider... sinon à l'évidence on peut très bien te conseiller des trucs qui font le contraire de ce que tu veux faire puisqu'on n'a pas bien compris.


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#6 Le 06/10/2013, à 10:59

yoyostone

Re : Petit problème avec grep

Alors pour bien m'exprimer  : J'ai pris le code source d'une page youtube avec dessus une playlist de 1000 et quelques vidéos , Dans ce code source Le lien de toute les vidéos est exprimé par : data-video-id:"quelques chiffres" Je voudrais donc supprimer tout sauf ce lien la + le data vidéo smile

Hors ligne

#7 Le 06/10/2013, à 11:03

yoyostone

Re : Petit problème avec grep

J'ai essayer la réponse de nesthib et c'est exactement sa ! j'ai juste eu a rediriger la réponse dans un ficher txt et voila smile merci a tous !

Hors ligne

#8 Le 06/10/2013, à 18:38

nesthib

Re : Petit problème avec grep

Modifie ton premier message et ajoute [résolu] au début du titre wink


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#9 Le 06/10/2013, à 22:51

Zakhar

Re : Petit problème avec grep

Sympa l'option -o de grep.

Je retiens !..

En plus s'il y a plusieurs patterns sur la ligne, il les match tous.

$ echo "Coucou et Coucou sont dans un bateau" | grep -o Coucou
Coucou
Coucou

Ca peut certainement remplacer avantageusement certains de mes sed's ;-)


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne