Попробуйте:
find -type f ! -iname "*.JPG" -exec dirname {} \; | sort -u
Примечания;
Для выполнения команды -exec
необходимо {}
показать, куда должно идти имя файла и точку с запятой. Поскольку оболочка съест простую точку с запятой, мы должны избежать ее, чтобы она передалась в find
.
-имя
совпадает с глобусами, а не с регулярными выражениями. Итак, итоговый $
в "*.JPG$"
, вероятно, не то, что вы хотите.
Вы сказали, что вам нужен "список каталогов, которые содержат файлы, отличные от jpgs". Следовательно, я добавил -тип f
, чтобы мы были уверены, что смотрим только на каталоги, которые содержат как минимум один файл.
Результаты выведены через -u
, чтобы удалить дубликаты.
Как [1175630]перекодировка[1175631], так и [1175632]iconv[1175633] могут изменить кодировку файла.[1175249].