grep -Ev 'word1|word2'
должен работать просто великолепно
При использовании find
для работы на файлы, необходимо всегда пытаться использовать -exec
функция, а не xargs
везде, где возможный, потому что это обойдет много потенциальных проблем с заключением в кавычки аргумента. Особенно в случае имен файлов со странными символами, это очень важно.
Попробуйте следующую команду:
find . -type d -name '*â*' -execdir rename 'â' '' {} \;
Это найдет все просто способом, которым Вы были, прежде кроме него будет использовать, находят, чтобы также отфильтровать по имени только для файлов, которые имеют â на имя (так как было бы бессмысленно выполнить переименовать команду при несоответствии файлам), и затем работайте rename
на них каждый индивидуально из каталога, где они найдены.
Вы просто пытаетесь удалить тот символ из одного файла и не можете сделать этого? Можно ли ввести mv how-
вкладкаhow-8093-to
или mv how-?8093-to how-8093-to
?
mv
, но я предпочитаю rename
для переименования слишком многих файлов
– Najib-botak Chin
10.08.2011, 04:28
Можно попробовать к обходному решению с помощью дополнительных классов символов, например:
find . -type d | xargs rename 's/[^A-Za-z0-9 ]//'
Однако в системе Ubuntu 10.04 я не могу воспроизвести Вашу проблему с Вашим именем файла в качестве примера и rename
. Возможно, что-то неправильно с Вашей установкой жемчуга или локалями?
Я не знаю, как версия переименовывает (я использую версию util-linux), Вы использование, но на моих работах Fedora 15 с:
rename 'â' '' how-â8093-to
От переименовывают руководство:
NAME
rename - Rename files
SYNOPSIS
rename from to file...
rename -V
DESCRIPTION
rename will rename the specified files by replacing the first occurrence of from in their name by to.
Я ничего не могу считать о sed как синтаксис, который Вы используете.