UNIX : script awk

UNIX : script awk - Infrastructures serveurs - Systèmes & Réseaux Pro

Marsh Posté le 18-06-2008 à 15:06:21    

Salut les gars,
 
Je dois faire un script pour mon job et j'ai des soucis.
J'aimerais découper un fichier grâce à un awk.
Mon fichier est de la forme :
 
...
 ITEMS | upr          : X8RFA2AR    
                          dep          : X8RFA2AO    
                          dep          : X8RFA2AQ    
 ITEMS | upr          : X8RFB100    
                          dep          : X8TMR999    
                          dep          : X8R00099    
 ITEMS | upr          : X8RFB111    
 ITEMS | upr          : X8RFB199    
 ITEMS | upr          : X8RFB1AN    
                          dep          : X8RFB111      
 ITEMS | upr          : X8RFB200    
                          dep          : X8TMR999    
                          dep          : X8R00099    
...
 
J'essaie d'obtenir les dépendances pour une famille d'items. J'aimerais obtenir une sortie du genre :
 
Shell X8RFB100 :
Dependance X8TMR999  
Dependance X8R00099
Shell X8RFB111 :
Dependance
Shell X8RFB199 :
Dependance
Shell X8RFB1AN :
Dependance X8RFB111
 
J'ai essayé plein de awk du style :
 
{
if ($2 ~/X8RFB1/)
 {  
 print ("Shell" $2 ":" )
 num=NR
 for (i=1;i<=20;i++)
         {
  num+=1
  if ((NR == num) && (/dep/))
   {
   print ("Dependance" $2)
   }
  else break  
  }
 }
}
 
Mais ça ne fait pas du tout ce que je veux.
Ca fait des heures que je me prends la tête là dessus. J'ai demandé à mon ami google sans succès.
Si quelqun a un moment, il pourrait m'aider ?
Merci !!!
 
Est'

Reply

Marsh Posté le 18-06-2008 à 15:06:21   

Reply

Marsh Posté le 18-06-2008 à 16:00:12    

Je crois que j'ai trouvé !!
 
{
if ((/ITEMS/) && ($2 ~/X8RFB1/))
 {  
 print ("Shell" $2 ":" )
 num=NR
 num+=1
 }
for (i=1;i<=10;i++)
        {
 if ((NR == num) && (/dep/))
  {
  num+=1
  print ("Dependance " $2)
  }
 }
}

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed