Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Autres systèmes > Unix > AIX

AIX Forum d'entraide sur le système AIX. Avant de poster -> FAQ AIX et cours AIX

Réponse
 
Outils de la discussion
Vieux 08/07/2008, 12h20   #1 (permalink)
Invité régulier
 
Date d'inscription: juin 2007
Messages: 10
Par défaut Utilisation de grep -v

Bonjour,
Je fais mes débuts sur Unix et j'aurais besoin d'un coup de main.
J'ai un fichier toto contenant un certain nombre de lignes. Ces lignes possèdent un code en plein milieu soit code1 soit code2, dont je connais le numéro. Je voudrais savoir si il existe dans mon fichier des lignes contenant un autre code...
Du coup, je souhaite afficher les lignes ne contenant pas soit le code1 soit le code2.

Pour l'instant, j'en suis à afficher les lignes ne contenant pas code1, on verra pour la combinaison des deux codes ensuite.
Je tape donc : grep -v "\*code1\*" toto | more
le résultat est le même que more toto...

Quelqu'un a-t-il une idée?
chtorrel est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 08/07/2008, 12h31   #2 (permalink)
Membre éprouvé
 
Avatar de KindPlayer
 
Date d'inscription: février 2007
Messages: 451
Par défaut

Je comprends pas bien ton ER. Essaie simplement grep -v "code1"
__________________
La science est ce que nous comprenons suffisamment bien pour l'expliquer à un ordinateur. L'art, c'est tout ce que nous faisons d'autre.
Donald E. Knuth
KindPlayer est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 08/07/2008, 12h44   #3 (permalink)
Invité régulier
 
Date d'inscription: juin 2007
Messages: 10
Par défaut

Effectivement, la formulation Unix est plus simple que celle en français,
grep -v "code1" toto est bonne,

en fait, la condition contient 2 codes, je tape ça :
# grep -v "code1"||"code2" toto

et le shell ne revient pas..
chtorrel est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 08/07/2008, 12h49   #4 (permalink)
Invité régulier
 
Date d'inscription: juin 2007
Messages: 10
Par défaut

Avec ça, ça marche :

grep -v "code1" toto | grep -v "code2"

je laisse le topic ouvert le temps de manger, si quelqu'un a mieux en expliquant pourquoi.

Merci KindPlayer et bon appétit.
chtorrel est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 09/07/2008, 14h08   #5 (permalink)
Futur Membre du Club
 
Date d'inscription: juillet 2007
Messages: 35
Par défaut

Citation:
Envoyé par chtorrel Voir le message
#grep -v "code1"||"code2" toto
et le shell ne revient pas..
Oups où as-tu vu que cette formulation devait fonctionner ?

grep -v "code1" toto | grep -v "code2"

est parfaitement acceptable, sinon il existe sous AIX un egrep (enhanced grep) qui autorise les expressions booléennes, eg :

egrep -v 'code1 | code2' fichier

Sous d'autres Unix, il est tout à fait possible que le grep par défaut soit l'équivalent du egrep AIX.
letis est déconnecté   Envoyer un message privé Réponse avec citation
Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Autres systèmes > Unix > AIX



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide


Fuseau horaire GMT +1. Il est actuellement 14h46.


Publiez vos articles, tutoriels et cours et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones. Nous contacter
Copyright 2000-2008 www.developpez.com - Legal informations