Как сортировать вывод

Я решил эту проблему одним способом, создав дополнительный подкаталог в домашнем каталоге пользователя, который принадлежит ему. Сам домашний каталог по-прежнему принадлежит root.

Таким образом, пользователь может делать в своем подкаталоге все, что захочет.

0
03.08.2018, 19:00
4 ответа

Использованиеsort:

$ ls -lghFG | sort -n -td -k2
total 0
-rw-r--r-- 1 0 Aug  3 09:43 tig_10.d1
-rw-r--r-- 1 0 Aug  3 09:43 tig_10.d2
-rw-r--r-- 1 0 Aug  3 09:43 tig_10.d3
-rw-r--r-- 1 0 Aug  3 09:43 tig_10.d4
-rw-r--r-- 1 0 Aug  3 09:43 tig_10.d5
-rw-r--r-- 1 0 Aug  3 09:43 tig_10.d6
-rw-r--r-- 1 0 Aug  3 09:43 tig_10.d7
-rw-r--r-- 1 0 Aug  3 09:43 tig_10.d8
-rw-r--r-- 1 0 Aug  3 09:43 tig_10.d9
-rw-r--r-- 1 0 Aug  3 09:43 tig_10.d10
-rw-r--r-- 1 0 Aug  3 09:43 tig_10.d11
-rw-r--r-- 1 0 Aug  3 09:43 tig_10.d12
-rw-r--r-- 1 0 Aug  3 09:43 tig_10.d13
-rw-r--r-- 1 0 Aug  3 09:43 tig_10.d14
-rw-r--r-- 1 0 Aug  3 09:43 tig_10.d15

Это будет использовать букву dв качестве разделителя и сортировать вывод в числовом виде в поле 2, поэтому могут возникнуть проблемы, если ваши имена файлов содержат букву d.

Чтобы удовлетворить ваше требование использовать ll(, который является псевдонимом ), вы можете сделать (не рекомендуется:

alias ll='ls -lghFG | sort -n -td -k2'
1
28.01.2020, 02:14

lsповторно -отсортирует имена файлов, которые вы ему дали (или текущую директорию, если вы )этого не сделали сами; один из способов обойти это - дать ему имена файлов отдельно:

ls -l *.d? ; ls -l *.d??

Или, поскольку у вас есть псевдоним/функция для длинного списка:

ll *.d?; ll *.d??
3
28.01.2020, 02:14

Я не знаю, что у вас ll. ll— это псевдоним для ls -l, но это не похоже на него.

В любом случае, этот конкретный вывод может быть отсортирован в нужном вам порядке с помощью GNU sortи его версии , применяемой к 5-му столбцу и выше:

ll | sort -bVk5

Если llкаким-то образом является псевдонимом для ls, а ваш ls— это GNU ls, то lsтакже имеет сортировку версии с включенной -v.

В оболочке zshможно отсортировать глобусы аналогичным образом с помощью опции numericglobsortили квалификатора глобуса (n). Итак, если ваша команда llможет получить список имен файлов в качестве аргумента и не выполняет никакой дальнейшей сортировки, вы можете выполнить (в zshи zshтолько):

ll *(n)
3
28.01.2020, 02:14

из man,

ll -v

  • -v естественный вид (версий )номеров в тексте
0
28.01.2020, 02:14

Теги

Похожие вопросы