You can use sort
:
sort -k8,8 <<EOF
drwxr-sr-x 2 user group 4096 2018-02-19 14:11:42 /something/project/somefile
drwxr-sr-x 2 user group 4096 2018-02-19 00:14:50 /blah-blah/anything
-rw-r----- 1 someone users 2188 2018-07-21 13:52:59 /aaa/222
drwxr-S--- 2 someone users 4096 2018-06-25 14:27:42 /bbb/333/anything/whatever
-rw-r----- 1 someone users 715 2018-06-16 20:09:58 /xxx/aaa/666
EOF
-k
selects which field to sort on, 8,8
says to sort on data from field 8, to field 8.
You can use -t
to define the field separator, though the default here is fine (non-blank to blank transition).
Output:
-rw-r----- 1 someone users 2188 2018-07-21 13:52:59 /aaa/222
drwxr-S--- 2 someone users 4096 2018-06-25 14:27:42 /bbb/333/anything/whatever
drwxr-sr-x 2 user group 4096 2018-02-19 00:14:50 /blah-blah/anything
drwxr-sr-x 2 user group 4096 2018-02-19 14:11:42 /something/project/somefile
-rw-r----- 1 someone users 715 2018-06-16 20:09:58 /xxx/aaa/666
To followup, you asked:
My file containing the list also has N starting and M ending lines which are not in the column-like form shown above. Unfortunately the sorting messes them up. How can I exclude those lines and sort just the columned ones?
You'll need to know how many lines are before / in / after the block to be sorted, and you can substitute the values used below with variables. A simple pipeline like shown below can work well.
Content of data.txt
:
Zline1
Zline2
drwxr-sr-x 2 user group 4096 2018-02-19 14:11:42 /something/project/somefile
drwxr-sr-x 2 user group 4096 2018-02-19 00:14:50 /blah-blah/anything
-rw-r----- 1 someone users 2188 2018-07-21 13:52:59 /aaa/222
drwxr-S--- 2 someone users 4096 2018-06-25 14:27:42 /bbb/333/anything/whatever
-rw-r----- 1 someone users 715 2018-06-16 20:09:58 /xxx/aaa/666
AlineN-1
AlineN
Pipeline:
(head -n 2; head -n 5 | sort -k8,8; cat) < data.txt
Output:
Zline1
Zline2
-rw-r----- 1 someone users 2188 2018-07-21 13:52:59 /aaa/222
drwxr-S--- 2 someone users 4096 2018-06-25 14:27:42 /bbb/333/anything/whatever
drwxr-sr-x 2 user group 4096 2018-02-19 00:14:50 /blah-blah/anything
drwxr-sr-x 2 user group 4096 2018-02-19 14:11:42 /something/project/somefile
-rw-r----- 1 someone users 715 2018-06-16 20:09:58 /xxx/aaa/666
AlineN-1
AlineN