[Shell-script] Extraire partie de texte

Fermé
Phil - 2 mai 2007 à 11:13
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 22 juin 2007 à 16:45
Bonjour à tous.

J'essaye de faire un script qui me permettrait d'extraire une partie d'un texte.
Cette Partie est récurrente dans le texte mais elle est toujours situé entre 2 lignes :

EVENT
 
la partie que je veux

EVENT


Comment faire pour réaliser cette action ?

Merçi d'avance.

3 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
2 mai 2007 à 11:40
Salut,
sed -n '/EVENT/,/EVENT/{/EVENT/b;/EVENT/b; p;}' fichier
Voir aussi : sed substitution

;-))
0
ok merçi beaucoup :)
0
Utilisateur anonyme
22 juin 2007 à 15:26
coucouille tout le monde,

juste une question bête, en fait je ne comprends pas le "/b" dans la syntaxe qu'a donné jipicy
bien que j'ai regardé le Voir aussi : sed substitution

@+
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
22 juin 2007 à 15:45
En fait la commande "b" pour "branch" (et non pas /b, le slash étant le délimiteur pour le motif) sert comme son nom l'indique à se brancher sur un étiquette, mais ici il n'y a point d'étiquette et de ce fait permet d'exclure les lignes contenant les "motifs" de l'affichage final.
$ cat plop

blablabla
AAA
La phrase qu'on veut afficher
BBB
bliblibli

$ sed -n '/AAA/,/BBB/p' plop  

AAA
La phrase qu'on veut afficher
BBB

$ sed -n '/AAA/,/BBB/ {/AAA/b;/BBB/b;p}' plop

La phrase qu'on veut afficher

$
;-))
0
Utilisateur anonyme
22 juin 2007 à 16:41
merci pour l'explication
cependant j'obtiens ce message quand je teste ici => sed : 0602-417 L'étiquette /AAA/,/BBB/ {/AAA/b;/BBB/b;p} comporte plus de huit caractères

je ne suis pas sous linux mais sous AIX/ ksh ....

++
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
22 juin 2007 à 16:45
Peut être la version de "sed" alors... d'ailleurs...

http://sed.sourceforge.net/sedfaq6.html#s6.6
6.6.5. Limits on length of label names

      GNU sed:        no limit
      ssed:           no limit
      HHsed v1.5:     no limit
      sed v1.6:       [pending]
      BSD sed:        8 characters

0