Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/11/2007, 12h07   #1
Membre du Club
 
Inscription : juillet 2006
Messages : 161
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 161
Points : 40
Points : 40
Par défaut grep et classe inverse

Bonjour,

J'ai le fichier suivant test.txt :

Code :
1
2
3
4
5
6
7
8
9
10
#+ /usr/**/
#+ /**/
#+ /etc
+  /test/
+ /etc/**/
+ /etc/network/interfaces
+ /root
#+ /root/**
+ *.conf
+ *.sh
Je souhaiterais selectionner uniquement :
Code :
1
2
/test
/etc/network/interfaces
J'ai essayer :

Code :
cat test.txt | grep -E "^\+[[:space:]]*[a-zA-Z0-9]*" | awk '{print $2}'
mais j'obtiens :

Code :
1
2
3
4
5
6
/test/
/etc/**/
/etc/network/interfaces
/root
*.conf
*.sh
A l'aide !!!

De plus les classes inverse ne marche pas :

Code :
cat test.txt| grep -E "^\+[[:space:]]*\*" | awk '{print $2}' :
mais :

Code :
cat test.txt| grep -E "^\+[[:space:]]*[^\*]" | awk '{print $2}'
Code :
1
2
3
4
5
6
/test/
/etc/**/
/etc/network/interfaces
/root
*.conf
*.sh

Qui est à l'aise avec ca ?

Merci

++
Fluxy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2007, 17h31   #2
Invité de passage
 
Inscription : septembre 2004
Messages : 10
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 10
Points : 2
Points : 2
Bonjour

Est il juste de dire que tu ne souhaites que les lignes
1) qui ne commencent pas par #
2) qui ne contiennent pas *

si c est le cas

grep -v -E "\*|^#" text | awk '{print $2}'

résultat
/test/
/etc/network/interfaces
/root





@+
tyvix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2007, 19h27   #3
Membre du Club
 
Inscription : juillet 2006
Messages : 161
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 161
Points : 40
Points : 40
Bonsoir,

Je te remercie.

Je me suis compliqué la vie pour rien :

Code :
grep -i -E '^\+[[:space:]]*[^\*][/]?([a-zA-Z0-9])*([a-zA-Z0-9/])*[/]?$' text | awk '{print $2}'
Merci

++
Fluxy est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h14.


 
 
 
 
Partenaires

Hébergement Web