问题
I am trying to write a BASH script to sort the contents of a file numerically according to a specific field in the file.
The file is under /etc/group
. All of the fields are colon-separated :
. I have to sort the contents of /etc/group
numerically based on the 3rd field.
Example field: daemon:*:1:root
What I'm trying so far:
#!/bin/bash
sort /etc/group -n | cut -f 3-3 -d ":" /etc/group
This is getting me really close, but it only prints out a sorted list of 3rd field values (since cut
literally cuts out the rest of the line). I'm trying to keep the rest of the line but still have it sorted by the 3rd field contents.
回答1:
You can use sort -t
like this:
sort -t : -nk3 /etc/group
-t :
tells sort
to use field delimiter as :
-nk3
tells sort
to sort data numerically on field #3
来源:https://stackoverflow.com/questions/32466906/sorting-file-contents-numerically-by-field