Сортировка имен файлов по длине имени файла - PullRequest
9 голосов
/ 26 марта 2012

ls отображает файлы, доступные в каталоге.Я хочу, чтобы имена файлов отображались в зависимости от длины имени файла.

Любая помощь будет высоко оценена.Заранее спасибо

Ответы [ 4 ]

9 голосов
/ 26 марта 2012

Вы можете сделать это

for i in `ls`; do LEN=`expr length $i`; echo $LEN $i; done | sort -n
5 голосов
/ 26 марта 2012

Самый простой способ это просто:

$ ls | perl -e 'print sort { length($b) <=> length($a) } <>'
3 голосов
/ 26 марта 2012

сделать тестовые файлы:

mkdir -p test; cd test 
touch short-file-name  medium-file-name  loooong-file-name

скрипт:

ls |awk '{print length($0)"\t"$0}' |sort -n |cut --complement -f1

вывод:

short-file-name
medium-file-name
loooong-file-name
0 голосов
/ 04 июня 2015
for i in *; do printf "%d\t%s\n" "${#i}" "$i"; done | sort -n | cut -f2-
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...