Bonjour,
Je sais que grep peut capturer une liste en tapant :
grep 'mot1, mot2, mot3' fichier1 fichier2
Mais peut t-il faire la même chose avec l'option -v ?
En tout cas moi je n'y arrive pas
grep -v 'mot1, mot2, mot3' fichier1
Avec ou sans l'option -v
Merci de votre aide
# Euh...
Posté par smc . Évalué à 2.
D'ailleurs, je sais pas que grep fait ce que tu dis (vu que je vois pas ce que tu dis ;P).
Mais ce que je sais qu'il fait, dans sa variante egrep, c'est interpréter sans problème les expressions régulières.
D'où le :
egrep -v "^.*(mot1|mot2|mot3).*$" fichier1 fichier2
Avec ou sans -v, ça marche.
[^] # Re: Euh...
Posté par totof2000 . Évalué à 1.
# oui, il peut
Posté par gaaaaaAab . Évalué à 2.
on ne peut pas passer plusieurs options -v à grep, il faut donc se débrouiller pour construire *la* regex qui gère d'un seul coup tous les motifs que tu veux exclure.
[^] # Re: oui, il peut
Posté par sylvain cresto (site web personnel) . Évalué à 2.
cat fichier | grep -v mot1 | grep -v mot2 | grep -v mot3
[^] # Re: oui, il peut
Posté par dubis . Évalué à 1.
cat fichier | grep -v mot1 | grep -v mot2 | grep -v mot3
a ses limites jusqu' a que le shell me signale qu'il ne trouve plus la commande grep car il y a trop de pipe.....
Merci de vos réponse
[^] # Re: oui, il peut
Posté par gaaaaaAab . Évalué à 1.
par contre, le cat ne sert à rien. D'ailleurs, globalement, tout usage de cat dans un script ou dans une succession de commande est probablement inutile :-)
sinon, tu peux aussi demander à grep de lire les motifs à partir d'un fichier.
Je viens de tester, et les options -f et -v sont compatibles.
[^] # Re: oui, il peut
Posté par ecid . Évalué à 4.
grep -v -e "mot1" -e "mot2" -e "mot3" fichier1
[^] # Re: oui, il peut
Posté par gaaaaaAab . Évalué à 1.
[^] # Re: oui, il peut
Posté par dubis . Évalué à 1.
:)
Encore merci de votre aide
[^] # Re: oui, il peut
Posté par dubis . Évalué à 1.
Fonctionne aussi tres bien
[^] # Re: oui, il peut
Posté par totof2000 . Évalué à 1.
[^] # Re: oui, il peut
Posté par dubis . Évalué à 2.
awk '!/mot1|mot2|mot3/' | sort
J4ai le message d'erreur suivant :
bash: sort : commande introuvable
Apparement le PATH du bash explose même en faisant
awk '!/mot1|mot2|mot3/' | /usr/bin/./sort
bash: /usr/bin/./sort: Aucun fichier ou répertoire de ce type
Je reste donc sur ma preference de grep avec l'option -v accompagnée de -e ...
Merci pour tout
[^] # Re: oui, il peut
Posté par totof2000 . Évalué à 1.
en sh :
# cat toto
mot1
mot2
mot4
mot6
# awk '!/mot1|mot2|mot3/' toto | sort
mot4
mot6
en bash:
bash-2.05# awk '!/mot1|mot2|mot3/' toto | sort
mot4
mot6
Ou est le probleme ?
[^] # Re: oui, il peut
Posté par dubis . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.