Как заменить двойные пробелы одним пробелом в именах файлов (также подкаталогах) (CloudLinux Server выпуск 6.10) - PullRequest
0 голосов
/ 04 апреля 2019

Я хочу заменить двойные пробелы одним пробелом в именах многих фотографий.Эти фотографии находятся в каталоге / foto и его подпапках.Как это сделать?Например, «photo 1.jpg» должно стать «photo 1.jpg»

. Лучший способ - использовать командную строку, поскольку она находится на сервере CloudLinux.(и это более 50 ГБ фотографий).Я искал здесь на Stackoverflow, также Google, чтобы найти нужную мне команду.Я думаю, что нужно использовать переименование, или mv.

Единственные вещи, которые я нашел, были команды о замене пробела и замене других символов, но не о двойных (множественных) пробелах.

Ответы [ 2 ]

0 голосов
/ 04 апреля 2019
find -iname \*.* | rename -v "s/\s{2}/ /g"

Это последняя команда, которая помогла мне.Я использовал perl rename, см. Ответ Жиля

0 голосов
/ 04 апреля 2019

Используйте это, используя переименование Perl:

rename 's/\s{2}/ /g' files*

Удалите переключатель -n, если вывод выглядит хорошо.

warning Существуют другие инструменты с таким же именемкоторый может или не может сделать это, поэтому будьте осторожны.

Если вы выполните следующую команду (GNU)

$ file "$(readlink -f "$(type -p rename)")"

, и у вас будет результат, содержащий Perl script, ASCII text executable и не содержащий ELF, то это, похоже, будет правильнымtool =)

Если нет, сделать его значением по умолчанию (обычно уже так) для Debian и производным, таким как Ubuntu:

$ sudo update-alternatives --set rename /path/to/rename

Заменить /path/to/rename на путьвашего perl rename исполняемого файла.


Если у вас нет этой команды, найдите менеджер пакетов для ее установки или сделайте это вручную (без депс ...)


Этот инструмент изначально был написан Ларри Уоллом, отцом Перла.

...