Ubuntu переименовывает команду regex не работающий

Я пытаюсь использовать 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
задан 6 August 2014 в 19:40

1 ответ

По всей вероятности Ваша оболочка расширяется $1 (вероятный пустой строкой) прежде, чем передать его эти rename команда. Попробуйте одинарные кавычки вместо двойных кавычек вокруг regex:

rename -- 's/image\.php\?x\=(.*)/$1.png/g' *

(также, не должно быть необходимо выйти из точки в выражении замены т.е. можно использовать $1.png вместо $1\.png)

2
ответ дан 11 November 2019 в 09:34

Другие вопросы по тегам:

Похожие вопросы: