je suis confronté a un petit problème de scripting shell,
je cherche a supprimer toutes les lignes contenant un pattern, mais j'ai plein de pattern différent a matcher.
J'ai testé cela, mais ca ne me supprime que la ligne qui match le pattern 1, je me demande ce que j'ai pu faire comme erreur pour que le pattern 2 ne soit pas pris en compte:
awk '$1 !~ /pattern1/ && $2 !~ /pattern2/ '
Avec cette commande, la ligne contenant pattern1 est bien supprimée, mais pas celle contenant pattern2.
Toute aide serait la bienvenue, parce que je vois pas trop ou erreur il y a.
D'avance merci
# grep -v?
Posté par fearan . Évalué à 3.
grep -vF 'il
faut
retirer
des
mots
totalement
inutile' fichier.txt
ou une autre variante
grep -vFE 'j[as][vs]a?
Cdiese
[dD]ieu' plop.txt
Il ne faut pas décorner les boeufs avant d'avoir semé le vent
[^] # Re: grep -v?
Posté par nicnictout . Évalué à 1.
Haaaaaaaaaaaaaaaaa quel idiot j'ai même pas pensé au grep -v...
bon du coup ca marche au poil maintenant, j'ai un peu retouché ta commande, mais j'ai ce que je voulais (suis happy quoi ^^)
grep -vF -e "pattern1" -e "pattern2"
On cherche compliqué alors que c'est parfois si simple :)=
Grand merci.
# tu ne matches pas ta ligne...
Posté par neologix . Évalué à 3.
Essaie avec
awk '$0 !~ /pattern1/ && $0 !~ /pattern2/ '
.Il vaudrait d'ailleurs mieux faire un
awk '$0 !~ /pattern1|pattern2/ '
ou encore ungrep -v "pattern1|pattern2"
ce sera plus rapide.[^] # Re: tu ne matches pas ta ligne...
Posté par nicnictout . Évalué à 1.
la 3ème ne passe pas, peut etre avec un egrep, sinon le grep évalue le pipe comme un caractère normal j'ai l'impression (suis pas expert en shell non plus, je dis donc peut etre des conneries)
Etant donné que je dois avoir une dizaine de pattern a matcher, la premiere solution proposé va m'obliger a avoir ma commande sur 5 lignes, pour ceux qui utiliseront le script après moi, ca deviendrait illisible.
Merci a vous 2 en tout cas :)
Bonne journée
[^] # Re: tu ne matches pas ta ligne...
Posté par kna . Évalué à 3.
grep -v 'pattern1\|pattern2'
Pour les détails :
man grep | grep -A 10 'Basic vs Extended'
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.