Вы можете использовать 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
выбирает поле для сортировки, 8,8
говорит, что нужно сортировать данные из поля 8 в поле 8.
Вы можете использовать -t
чтобы определить разделитель полей, хотя по умолчанию здесь хорошо (переход от непустого к пустому).
Выход:
-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
Для продолжения вы спросили:
Мой файл, содержащий список, также имеет N начальных и M конечных строк, которые не имеют форму столбца, показанную выше. К сожалению, сортировка портит их. Как я могу исключить эти строки и отсортировать только столбцы?
Вам нужно знать, сколько строк находится до / в / после блока для сортировки, и вы можете заменить значения, используемые ниже, переменными. Простой конвейер, как показано ниже, может работать хорошо.
Содержание 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
Трубопровод:
(head -n 2; head -n 5 | sort -k8,8; cat) < data.txt
Выход:
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