J'ai un fichier (user.csv) comme celui-ci
ip,hostname,user,group,encryption,aduser,adattr
vouloir imprimer tous les types de colonnes par utilisateur,
J'ai essayé awk -F ":" '{print|"$3 sort -n"}' user.csv
, ça ne marche pas.
Que diriez-vous de simplement sort
.
sort -t, -nk3 user.csv
où
-t,
- définit votre délimiteur comme ,
.
-n
- vous donne un tri numérique. Ajouté depuis que vous l'avez ajouté dans votre tentative. Si votre champ utilisateur est uniquement du texte, vous n'en avez pas besoin.
-k3
- définit le champ (clé). l'utilisateur est le troisième champ.
Utilisez sed pour supprimer l'ID utilisateur en double, en supposant que les ID utilisateur ne contiennent aucun espace.
awk -F, '{ print $3, $0 }' user.csv | sort | sed 's/^.* //'
awk -F, '{ print $3, $0 }' user.csv | sort -nk2
et pour ordre inverse
awk -F, '{ print $3, $0 }' user.csv | sort -nrk2
Vous pouvez choisir un délimiteur. Dans ce cas, j’ai choisi deux points et imprimé la première colonne en triant par ordre alphabétique:
awk -F\: '{print $1|"sort -u"}' /etc/passwd
essaye ça -
awk '{print $0|"sort -t',' -nk3 "}' user.csv
OR
sort -t',' -nk3 user.csv