[awk] Sous-chaîne de longueur variable
Bonjour,
Je fais actuellement à mon travail des tâches de Scripting et je fais face à quelques petit problèmes.
- 1) Quand on extrait une chaine avec un séparateur comme ici : FS= »| », peut-on extraire une sous-chaine de notre champ grâce à un autre séparateur. ?
Car les chaines que j’extrais contiennent des accents et comme cela me pose problème j’aimerais pouvoir extraire la première partie de ma chaine qui a une largeur variable mais qui se finit toujours par un "-" .
Exemple :
Le champ extrait grâce à mon séparateur "|" me donne :
Toto xcvb ezs – allée des tâches à Créteil
Titi – fait du vélo
Tata 23pr – Remonté des données
Et j’aimerais pouvoir en extraire une sous-chaîne à longueur variable :
Toto xcvb ezs
Titi
Tata 23pr
Code:
1 2 3 4 5 6 7 8 9 10 11
| for t in $Groupe4
do
cat /tmp/${FIC_TXT} | awk -v var=$t ' BEGIN{FS="|";} { if(var == $1) {NB_TRAIT ++;
if("Normal" == $10){NB_NORMAL ++;}
if("Avertissement" == $10){NB_WARNING ++;}
if("Erreur" == $10){NB_ERREUR ++;}
if("En cours"== $11){NB_ENCOURS ++;}
}}
END {printf("<tr><td>%s</td><td> </td><td> </td><td> </td><td>%d</td><td>%d</td><td>%d</td><td>%d</td><td>%s</td><td></td>
<td></td><td></td><td></td></tr>",var,NB_TRAIT,NB_NORMAL,NB_WARNING,NB_ERREUR,NB_ENCOURS)}' >> ${LOCAL_DIR}/${FIC_HTML}
done |
- 2) Quand on effectue le printf y a-t-il une manière de ne pas écrire les variables valant "0" ou peut-on les remplacer par des champs vides ?
par avance merci pour toutes vos suggestions