У меня есть пара файлов с именем
(a).1
(a).2
...
(a).100
Поскольку многим инструментам обработки не очень нравится (
и )
имя файла, я подумал, что лучше переименовать их в другое имя. Я гуглил для переименования файлов и нашел замечательный инструмент rename
где я могу кормить регулярное выражение. Хорошо, давайте попробуем это:
$ rename -v s/\(a\)/b/ \(a\).*
(a).1 renamed as (b).1
(a).2 renamed as (b).2
(a).3 renamed as (b).3
Хм, не то, что я ожидал. После небольшого поиска я обнаружил, что \(
\)
является оператором группировки. Какой вид имеет смысл, поскольку я не избежал (
)
в команде.
Я решил проблему с переименованием, используя .
символ, соответствующий всем типам значений:
rename -v s/.b./b/ \(b\).*
Это решение не очень приятно. Итак, как мне сопоставить (
и )
в Bash/Linux/Unix Regex?