В заголовке говорится все это, и да я знаю, что существует много подобных вопросов, но самое близкое, которое я мог найти, удаляло "и нет '. Что я попробовал, до сих пор:
find -name "*'*" -type f | rename 's/\'//g'
или rename 's/[']//g'
и некоторые другие изменения. Я нахожу все файлы, но когда я передаю его по каналу к rename
, Я просто добираюсь >
для подсказки и имеют к Ctrl+C для возврата. Я недавно изменил много файлов с этим, и это работало как очарование над любым специальным символом, кроме одинарных кавычек.
Можно использовать двойные кавычки:
rename -n "s/'//g"
удаляют -n
после тестирования для переименования файлов для реального
Использование -exec
хотя...
find -name "*'*" -type f -exec rename -n "s/'//g" '{}' \;
, Если список не является слишком длинным, сделайте его быстрее...
find -name "*'*" -type f -exec rename -n "s/'//g" '{}' +
Это работает с bash
в моей системе (OpenSUSE Leap):
$ rename "'" '' **
3 аргумента для rename
: "'"
, ''
и **
(globstar
), предлагая заменить кавычки пустой строкой и сделать это рекурсивно.
Обратите внимание, что **
(globstar
) в моей системе включен по умолчанию. Я не знаю, как его отключить.