Commande "sed" comparer fichier

Fermé
myspace302 - 15 mai 2012 à 23:03
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 - 16 mai 2012 à 09:39
Bonjour
Dans mon code shell, je dois créer une boucle où je dois recuperer un bloc de donnée specifique d'un fichier
Dans le fichier il ya plusieurs bloc, et je veux recuperer le bloc contenant une chaine de caractere specifique.
Par exemple:
A01 Il est malade
B02 Toto est de retour
C01 Titi joue au foot
A02 Il revise ses cours
A01 Toto reviens ce soir
B01 Eric code en "JAVA"
C02 Marine est revenue
A01 Toto est devenu sage
B02 titi regarde la télé
C01 Il est étudiant
A02 Il revise ses cours
Mon but est de parcourir tout le fichier et sélectionner le bloc contenant la lettre "JAVA", sachant que la 1ere ligne de chaque bloc commence par A1 et la dernière ligne se termine par A02 (il n'y pas d'espace entre les blocs)
Je compte sur vous
A voir également:

1 réponse

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 416
16 mai 2012 à 08:07
Salut,

Voir cette réponse, il suffit d'adapter.
0
Je me suis basé sur votre commande $ sed -n '/A01/{:z;N;/\n$/! bz;/JAVA/p}' fich
Et d'aprés vos explication j'ai remplacé le caractére $ par le caractere qui marque la fin du du bloc (A02) en gros ça donne ça
$ sed -n '/A01/{:z;N;/\nA02/! bz;/JAVA/p}' fich
Je ne sais pas si le syntaxe est bon
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 416
16 mai 2012 à 09:39
Y'a qu'à essayer ;-)

Normalement ça devrait être bon.
0