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 :
Ce que je veux récupérer : la valeur de MIN et de id, si MIN > 1.
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
Code qui fonctionne sous Linux et AIX
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....
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
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...
Partager