Comment reperer une ligne vide sous Awk

Fermé
tid008 Messages postés 8 Date d'inscription vendredi 13 mars 2009 Statut Membre Dernière intervention 31 mars 2009 - 18 mars 2009 à 10:33
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 18 mars 2009 à 11:16
Bonjour,

Dans un fichier au format suivant:


"vide"
"Nom d'h“te","Nom de tƒche","Heure de la prochaine ex‚cution","tat","Heure de la derniŠre ex‚cution"
"EXTELIA-L00012","test tache planifi‚","Jamais","","11:20:00, 16/03/2009","0"

Je voudrai faire 2 choses sous awk.

La premiere serait de tester si la premiere ligne du fichier est vide ( je debute , désolé)
La deuxieme serait de remonter la valeur "Nom deTache" ( par exemple) de chaque ligne sachant que certains fichiers à analyser comporteraient un champ supplémentaire du style :

"Test3,"Nom d'h“te","Nom de tƒche","Heure de la prochaine ex‚cution","tat","Heure de la derniŠre ex‚cution"
'TEST","EXTELIA-L00012","test tache planifi‚","Jamais","","11:20:00, 16/03/2009","0"

Je sais qu'il faut que je fasse un match du champ, pour ensuite recuperer les valeurs de cet index, mais ça reste flou.

Merci de votre aide.

1 réponse

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
18 mars 2009 à 11:16
Salut,

Pour la 1ère ligne vide, un truc du genre devrait suffire :
awk 'NR == 1 { if ( NF == 0 ) { print "Ligne vide" } }' fichier
Pour ton autre problème, peut être voir en comparant le nombre de champs, un truc du style :
awk -F',' '{ if ( NF == 8 ) { print  $3 } else { print $2 } }' fichier
Mais bon, attend quand même l'arrivée de spécialiste de awk comme dubcek par exemple...

;-))
0