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