ls отображает файлы, доступные в каталоге. Я хочу, чтобы имена файлов отображались в зависимости от длины имени файла.Сортировка имен файлов по длине имени файла
Любая помощь будет высоко оценена. Заранее спасибо
ls отображает файлы, доступные в каталоге. Я хочу, чтобы имена файлов отображались в зависимости от длины имени файла.Сортировка имен файлов по длине имени файла
Любая помощь будет высоко оценена. Заранее спасибо
Вы можете сделать как это
for i in `ls`; do LEN=`expr length $i`; echo $LEN $i; done | sort -n
сделать тестовые файлы:
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
Первые два решения работают отлично. Спасибо всем за ответ. –
Самый простой способ это просто:
$ ls | perl -e 'print sort { length($b) <=> length($a) } <>'
Ответ Raghuram выше не работал для меня на FreeBSD в оболочке bash, но это было сделано. Должен любить перл. Благодарю. –
for i in *; do printf "%d\t%s\n" "${#i}" "$i"; done | sort -n | cut -f2-
Я думаю, что это сортировка в зависимости от размера файла, я хочу, чтобы быть отсортирован на основании длины файла –
сожалеем об этом. позвольте мне получить правильный и repost – Raghuram
Добавлен новый код ... проверить сейчас – Raghuram