Экранирование символа точки в tr-dc

Я пытаюсь переименовать файлы с помощью tr . Следующая команда почти работает:

 for file in ./*; do mv -v "$file" $(echo "$file" | tr ' []' '-' | tr -dc 'A-Za-z0-9_-' | tr '[:upper:]' '[:lower:]'); done 

Однако команда также разделяет символы точек. Итак, этот файл:

Церковь Святого Николая от NE [1235] 1936-08-01.jpg

становится

Стартовые николай-церковь-из-пе – 1235–1936-08-01jpg

Я пробовал различные способы избежать точки, например, используя tr -dc 'A-Za-z0-9\._-' и tr -dc "A-Za-z0-9\._-"

Результат неизменно состоит в том, что каждый символ удаляется. Итак, мой вопрос, как правильно избежать символа точки в tr -dc ?

One Solution collect form web for “Экранирование символа точки в tr-dc”

Просто добавьте точку в «разрешенных символах». Также добавьте символ / (часть пути).

 for f in ./*; do new_f="$( printf "%s" "$f" | tr ' []' '-' | tr -dc 'A-Za-z0-9_./-' | tr '[:upper:]' '[:lower:]')" printf "Would move '%s' to '%s'\n" "$f" "$new_f" done 

Это приводит к

 Would move './St Nicholas' church from NE [1235] 1936-08-01.jpg' to './st-nicholas-church-from-ne--1235--1936-08-01.jpg' 
Interesting Posts

systemd-resolved – как остановить пересылку и перейти непосредственно к DNSBLs / RBL (черным спискам почтовых серверов)

Запуск службы перед входом в систему

GRUB: отображает GRUB на внешнем дисплее, подключенном к ноутбуку?

Что такое полуфайлы?

Есть ли какой-либо плагин для zsh или bash, который завершает эвристическое имя файла?

Как ограничить пользователя SSH разрешать только SSH-туннелирование?

Предварительная подготовка каждой строки, сколько времени потребовалось для ее создания

частота появления

Как передать вывод команды нескольким программам

Верхний регистр S в разрешениях папки

Как установить PATH или другие переменные среды, чтобы X приложения могли получить к нему доступ?

Настройки цвета Xresources

Как отключить SSLv2 и SSLv3 в pure-ftpd

Новый веб-сервер: какие все учетные записи пользователей должны создавать и разрешать для

ksh не может cp из местоположения с пространством в нем?

Linux и Unix - лучшая ОС в мире.