Я пытаюсь использовать rename
команда для переименования набора изображений в папке.
У меня есть этот список изображений,
image.php?x=10
image.php?x=25
image.php?x=50
image.php?x=75
Я пытаюсь переименовать их к 10.png
, 25.png
и т.д. использование этого regex:
$ rename "s/image\.php\?x\=(.*)/$1\.png/g" *
Этот regex хорошо работает в, например, Сублимированном тексте, все соответствия заменяются правильно...
Но когда я выполняю переименовать команду как это, с $0
это говорит bash.png already exists
и с $1
это говорит .png
уже существует, таким образом, ничто не было сохранено!
wat делают?
По всей вероятности Ваша оболочка расширяется $1
(вероятный пустой строкой) прежде, чем передать его эти rename
команда. Попробуйте одинарные кавычки вместо двойных кавычек вокруг regex:
rename -- 's/image\.php\?x\=(.*)/$1.png/g' *
(также, не должно быть необходимо выйти из точки в выражении замены т.е. можно использовать $1.png
вместо $1\.png
)