compter ou récupérer des champs même vides
Bonjour !
J'ai besoin de compter les champs d'un fichier séparés par des tabulations.
Par exemple avec ce fichier contact :
Code:
1 2 3 4 5
| nom tel cp ville
DUPONT 13100 MARSEILLE
DUPONT 0123456 MARSEILLE
DURAND
TINTIN |
Pour extraire les champs j'utilise le script suivant :
Code:
1 2 3 4 5 6 7 8 9 10
| #!/bin/bash
cat $1 | while read ligne
do
i=0
for champ in $ligne
do
i=$(( $i + 1 ))
echo Champ n°$i : $champ
done
done |
Problème : ce script retrouve 1 ou 3 champs par ligne, alors que les deux premières comprennent 4 champs séparés par des tabulations. Le champ vide est donc ignoré.
La commande cut -f $n permet bien d'extraire chaque champ y compris les champs vides mais il faut indiquer le numéro du champs. Il faudrait alors faire une boucle pour compter le nombre de champs, car sinon la boucle s'arrêtera à la fin du fichier et non pas de la ligne... là encore je ne sais pas comment faire.
Merci de l'aide,
Thibaud.