Bonjour,

Sous Linux ou AIX, j'utilise awk avec RS pour récupérer plusieurs lignes à la fois. Et bien évidemment, nawk de Solaris ne supporte pas d'avoir plusieurs caractères dans RS (mais on se demande vraiment à quoi ça sert dans ce cas), et awk n'a pas l'air d'apprécier non plus, ce qui fait que je me retrouve coincé...

Exemple de fichier test.txt :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
blabla
"serveur1" id=42
 non "encore du blabla"
bla bla MIN=2 bla bla
"serveur1" id=43
 non "encore du blabla"
bla bla MIN=1 bla bla
"serveur1" id=44
 non "encore du blabla"
bla bla MIN=4 bla bla
pleins de bla bla inutile
Ce que je veux récupérer : la valeur de MIN et de id, si MIN > 1.

Code qui fonctionne sous Linux et AIX

Code : Sélectionner tout - Visualiser dans une fenêtre à part
 awk 'BEGIN { RS="\n\"" ; FS="[ \t=]" } { for (i=0 ; i<NF ; i++) { if ($i=="MIN" && $(i+1) > 1 ) { printf $(i+1) " " $3} } }' test.txt
Sauf que sous Solaris, eh bien il ne veut vraiment pas... : awk ne retourne rien du tout, et nawk ne supporte pas plusieurs caracteres dans RS....

Donc si vous avez une idée, je suis preneur, parce que je ne vois vraiment plus comment faire. Sachant que bien sur je ne peux rien installer sur les machines, donc je suis super limité... Ah, on me souffle qu'il y a python si ca aide...