Bonjour !
J'ai besoin de compter les champs d'un fichier séparés par des tabulations.
Par exemple avec ce fichier contact :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.