Bonjour à tous,

Voilà mon problème:
J'ai un fichier comme suit:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
mpath25 (xxxxx) yyyyy XXXXXX
[size=10.0G][features=0][hwhandler=0]
\_ abc 0 [prio=0][active]
 \_ 1:0:2:4 disk23 66:112 [active][undef]
 \_ 0:0:2:4 disk2 8:224  [active][undef]
mpath3 (xxxxx) yyyyy XXXXXX
[size=30G][features=0][hwhandler=0]
\_ abc 0 [prio=0][active]
 \_ 1:0:5:4 disk12 66:224 [active][undef]
 \_ 0:0:5:4 disk76  65:80  [active][undef]
mpath24 (xxxxx) yyyyy XXXXXX
[size=10G][features=0][hwhandler=0]
\_ abc 0 [prio=0][active]
 \_ 1:0:1:4 disk45 66:32  [active][undef]
 \_ 0:0:0:4 disk43  8:64   [active][undef]
\_ round-robin 0 [prio=0][enabled]
 \_ 1:0:0:4 disk67 65:208 [active][undef]
 \_ 0:0:1:4 disk34  8:144  [active][undef]
Dans lequel je dois récupérer les champs en rouge.

Voici mon code en awk :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/bin/awk -f
BEGIN {FS = " "
i=0}
{       if($4 == "IBM,2145")
                {
                print "path: "$1"    sur baie "$4
 
                getline
                getline
 
                while( $2 ~ /abc/)
                        {
                        getline
                        while( $3 ~ /disk*/)
                                {
                                print "disque: "$3
                                getline
                                }
                        }
                }
J'execute mon script tout simplement: ./monscript monfichier
Le problème est que lorsque j'arrive à la fin du fichier, je ne sors jamais de ma seconde boucle et le script m'affiche en boucle "disque : disk34"
En fait, awk ne s'arrête pas et ne trouve apparemment pas la fin de fichier.

Ais-je fait une erreur?

Merci d'avance pour votre aide

Quelques précisions:
OS: Linux
Shell : Ksh
Programmeur: Débutant