How to use awk sort by column 3
Solution 1:
How about just sort
.
sort -t, -nk3 user.csv
where
-t,
- defines your delimiter as,
.-n
- gives you numerical sort. Added since you added it in your attempt. If your user field is text only then you dont need it.-k3
- defines the field (key). user is the third field.
Solution 2:
- Use awk to put the user ID in front.
- Sort
-
Use sed to remove the duplicate user ID, assuming user IDs do not contain any spaces.
awk -F, '{ print $3, $0 }' user.csv | sort | sed 's/^.* //'
Solution 3:
You can choose a delimiter, in this case I chose a colon and printed the column number one, sorting by alphabetical order:
awk -F\: '{print $1|"sort -u"}' /etc/passwd
Solution 4:
awk -F, '{ print $3, $0 }' user.csv | sort -nk2
and for reverse order
awk -F, '{ print $3, $0 }' user.csv | sort -nrk2
Solution 5:
try this -
awk '{print $0|"sort -t',' -nk3 "}' user.csv
OR
sort -t',' -nk3 user.csv