Як можна сортувати ls за власником та групою?


Відповіді:


8

Спробуйте це:

ls -l | awk '{print $3, $4, $8}' | sort

Він надрукує ім’я користувача, ім’я групи та ім'я файлу, за умови, що ім'я файлу не містить пробілів. Можна також ввести:

ls -l | awk '{print $3, $4, $0}' | sort

Це надрукує ім’я користувача, ім'я групи та повний ls -lвихід, відсортований спочатку ім'ям користувача, потім ім'ям групи, а потім тим, що ls -lдрукує спочатку.

Зауважте, що залежно від вашого розповсюдження фактичні номери стовпців можуть відрізнятися. Я спробував своє в SUSE та coreutils версії 5.2.1.

Ймовірно, є кращі, більш продумані рішення, але це найпростіший варіант, який працюватиме більшу частину часу.


1
s / номери рядків / номери стовпців /
Призупинено до подальшого повідомлення.

7

Як сказав Петерсон, щось подібне до:

  • ls -l | awk '{print $3, $4, $8, $0}' | sort | column -t
    додали $8та column -tдля симпатичного друку

Або ще краще:

  • ls -l | sort -k 3 - сортує за власником і за замовчуванням сортує наступне поле (групу) та увімкнено
  • ls -l | sort -k 4,4 -k 3 - сортування за групами, а потім за власником
  • ls -l | sort -k 3,3 -k 8 - сортування за власником, а потім за іменем файлу

Примітка: кома є полем термінатора, тому воно 3,3починається і закінчується в полі 3 3,5сортування від полів 3 до 5.


Для сортування за групою, а потім за власником мені довелося додати -b, щоб ігнорувати провідні пробіли, інакше список буде відсортований за довжиною рядка імені власника.
Стефан Шмідт
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.