109 votes

Comment utiliser awk sort by column 3

J'ai un fichier (user.csv)comme ceci

ip,hostname,user,group,encryption,aduser,adattr

Je veux imprimer toutes les colonnes triées par utilisateur,

J'ai essayé awk -F ":" '{print|"$3 sort -n"}' user.csv ça ne marche pas.

6voto

VIPIN KUMAR Points 2061

Essayez ceci -

awk '{print $0|"sort -t',' -nk3 "}' user.csv

OU

sort -t',' -nk3 user.csv

4voto

user13608932 Points 41
awk -F "," '{print $0}' user.csv | sort -nk3 -t ','

Cela devrait fonctionner

1voto

rupert160 Points 799

Pour exclure la première ligne (l'en-tête) du tri, je la divise en deux tampons.

df | awk 'BEGIN{header=""; $body=""} { if(NR==1){header=$0}else{body=body"\n"$0}} END{print header; print body|"sort -nk3"}'

1voto

Cyrus Points 1567

Avec GNU awk :

awk -F ',' '{ a[$3]=$0 } END{ PROCINFO["sorted_in"]="@ind_str_asc"; for(i in a) print a[i] }' file

Voir 8.1.6. Utiliser des ordres de balayage de tableau prédéfinis avec gawk pour d'autres algorithmes de tri.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X