Salut à tous,
je dois extraire certains blocs d'un fichier texte sous certaines conditions :
- Le bloc doit commencer par 'fmri'
- Le bloc doit contenir la chaîne 'restarter svc:/system/svc/restarter:default'

Voici un example en entrée :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
fmri         svc:/system/vxpbx:default
state_time   Wed Mar 21 08:49:43 2012
logfile      /var/svc/log/system-vxpbx:default.log
restarter    svc:/system/svc/restarter:default
dependency   require_all/none svc:/system/filesystem/local (online)
 
fmri         svc:/application/management/common-agent-container-1:default
name         Cacao, a common Java container for JDMK/JMX based management solution
enabled      false
dependency   require_all/none svc:/milestone/multi-user (online)
Ce qui doit donner en sortie :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
fmri         svc:/system/vxpbx:default
state_time   Wed Mar 21 08:49:43 2012
logfile      /var/svc/log/system-vxpbx:default.log
restarter    svc:/system/svc/restarter:default
dependency   require_all/none svc:/system/filesystem/local (online)

Je suis arrivé à cette solution là :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
awk '/fmri/{s=x}{s=s$0"\n"}/restarter/{p=1}/^$/ && p{print s;exit}' svcs-l_spsol03.out
Mais seul le premier bloc est affiché, et je ne vois pas pourquoi.
Merci de votre aide !