J’essaie de trouver le nombre de fois qu’un identifiant d’email particulier se répète. Piping uniq -c
avec la sortie je reçois 420 aol.com
mais j’ai besoin de aol.com 420
comment faire car uniq -c
s’applique comme un nombre de préfixes
Vous pouvez diriger la sortie vers awk
:
ssortingng='420 aol.com' echo "$ssortingng" | awk '{print $2,$1}' aol.com 420
Par défaut, awk
sépare chaque champ par des espaces.
420
est le 1er champ $1
aol.com
est le 2e champ $2
.
Cela indique simplement à awk
d’imprimer chacun de ces champs dans l’ordre inverse. {print $2,$1}
Si vous avez une liste d’adresses électroniques telles que:
$ cat emails.txt [email protected] [email protected] [email protected]
et vous avez besoin du nombre de leurs domaines, en utilisant awk:
$ awk -F@ '{a[$2]++} END {for(i in a) print i, a[i]}' emails.txt aol.com 2 yahoo.com 1
Les enregistrements sont générés sans ordre particulier. Si vous utilisez Gnu awk, les enregistrements peuvent être commandés en utilisant PROCINFO["sorted_in"]="@val_num_asc";
(voir ici des options) au début du bloc BEGIN
.