Я хотел бы видеть все уникальные расширения файлов, содержащихся в определенном каталоге. Какова команда, чтобы сделать это в Bash?
Можно использовать, find . -type f
чтобы получить все файлы в текущем каталоге, затем удалить расширение и передать его uniq
. Какой самый простой способ удалить расширение?
sed: illegal option -- r
-E
вместо-r
OS X.Работает на OS X, за исключением файлов без расширения. Моя папка для скачивания:
Вам может понадобиться
sed -r
вместо этого?Незначительная проблема: файлы без расширений печатают свое имя. Скрытые файлы (например,
.DS_Store
) печатают свое имя без начального.
.источник
sort -u
вместоsort | uniq
. Меньше разветвления и использования ресурсов.[]
.Вот еще одно решение, которое не смущает имена файлов, содержащие встроенные символы новой строки, и использует их
sort -uz
для правильной сортировки расширений файлов, которые также могут иметь встроенные символы новой строки:источник
Быстрый и простой способ запомнить расширение состоит в том, чтобы предположить, что все имена файлов имеют формат «name.ext», а затем использовать:
это дает количество уникальных расширений, например:
источник
вот почему я люблю awk:
источник