Bonjour,
Cela pourra peut être t'aider
calcul du nombre d'occurrence non identique de la première colonne
soit le awk va cheker toutes les lignes du tableau
- l'argument F lui dit qu'elle est le séparateur de colonnes ici les ":"
- ensuite tu ne veux que la première colonne $1 et sur monfichier
- mis dans un pipe "|" (il garde la sortie en mémoire pour les retraiter)
- "sort -u" élimine les doublons
- re pipe
- wc -l calcul le nombre de ligne qu'il y a dans la sortie
si c'est trop long tu nous le dis, il est possible dans le awk de faire ce calcul d'une manière séquentiel ( par 5000 lignes ou par 10000 cela dépend de la lourdeur du fichier mais awk prend peux de mémoire pour cela en revanche une boucle for garde tout en mémoire pour en fin te sortir le résultat donc la petit crash de la commande... ça arrive ;-)
awk -F":" '{print $1}' monfichier | sort -u | wc -l
NB : tu peux additionner des colonnes par exemple la colonne 1 et 3 et 7 avec les ":" entre les champs (ou colonne comme tu souhaites c'est pareil dans ce cas ci) pour une sortie tempo pour continuer et conserver le séparateur de champs ":" avec une sortie d'un fichier temporaire que tu retraite derrière...
awk -F":" '{print $1":"$3":"$7} ' | grep $madate | sort -u > fichiertempo
etc ...
Cordialement
NB si ça peut t'aider
1 2 3 4 5 6 7
|
MONFICHIER=test
MADATE=20081017
export NBDSMYFILE=$(awk '{print substr($0,1,8) substr($0,13,$NF)}' $MONFICHIER | grep $MADATE | wc -l )
awk '{print substr($0,1,8) substr($0,13,$NF)":"ENVIRON["NBDSMYFILE"] }' $MONFICHIER | sort -u |
Cordialement
Partager