Recherche de pattern en SED
Résolu/Fermé
gunbol
Messages postés
47
Date d'inscription
mercredi 19 septembre 2007
Statut
Membre
Dernière intervention
18 mars 2016
-
5 déc. 2011 à 13:19
mamiemando Messages postés 33410 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 2 décembre 2024 - 5 déc. 2011 à 19:27
mamiemando Messages postés 33410 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 2 décembre 2024 - 5 déc. 2011 à 19:27
A voir également:
- Recherche de pattern en SED
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Recherche adresse - Guide
- Recherche musique - Guide
- Recherche par image - Guide
- Rechercher ou entrer l'adresse 4 - recherche google ✓ - Forum Windows
1 réponse
mamiemando
Messages postés
33410
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
2 décembre 2024
7 808
Modifié par mamiemando le 5/12/2011 à 19:29
Modifié par mamiemando le 5/12/2011 à 19:29
(mando@aldur) (~) $ cat toto.txt 05-DEC-2011 06:03:26 * (CONNECT_DATA=(SID=dbupqa10)(CID=(PROGRAM=D:\Opt\Oracle\Dev608\BIN\ifrun60.EXE)(HOST=blablabla)(USER=Anon000))) * (ADDRESS=(PROTOCOL=tcp)(HOST=x.x.x.x)(PORT=1839)) * establish * dblabla10 * 0 05-DEC-2011 06:03:26 * (CONNECT_DATA=(SID=dbupqa10)(CID=(PROGRAM=D:\Opt\Oracle\Dev608\BIN\ifrun60.EXE)(HOST=blablabla)(USER=Anon000))) * (ADDRESS=(PROTOCOL=tcp)(HOST=x.x.x.x)(PORT=1839)) * establish * dblabla10 * 0 (mando@aldur) (~) $ sed -e 's/.*\((USER=[^)]*)\).*/\1/' toto.txt (USER=Anon000) (USER=Anon000)
Petite explication en lisant de gauche à droite le motif passé à sed :
- s/CHAINE/REMPL/ : on va substituer les lignes qui respectent le motif CHAINE par un motif décrit dans REMPL.
Regardons maintenant ce qui est dans CHAINE :
- \.* : n'importe quelle suite de caractère
- \( : début du premier morceau, référencé \1 dans REMPL
- (USER= : la suite de caractère (USER=
- [^)] : n'importe quel caractère autre que ')'
- [^)]* : n'importe quel caractère autre que ')' répété entre 0 et une infinité de fois
- ) ; le caractère )
- \) fin du premier morceau (référencé par \1 dans REMPL)
Maintenant passons à REMPL :
- \1 : on réécrit simplement le morceau extrait (sans rien ajouter ni à gauche ni a droite. Par exemple on aurait pu écrire >>>\1<<< pour écrire >>>Anon0<<<<.
Bonne chance