-
Sua última variante é a correta para usar aspas duplas internas - mas você tem que escapar também do
$1
caso contrário o shell irá expandi-lo:"/.*(\d\d).jpg/Foo's Excellent Photo - \.jpg/"
-
No entanto, ainda recebo o erro
Bareword found where operator expected at (eval 1) line 1, near "/.*(\d\d).jpg/Foo's" (Missing operator before Foo's?) syntax error at (eval 1) line 1, near "/.*(\d\d).jpg/Foo's Excellent "
Mas isso não é por causa de citações erradas, mas porque
perl-rename
espera um regex perl. E você obviamente deseja pesquisar e substituir, portanto, uses/.../.../
, não apenas/.../.../
. -
Então, resumindo, esse comando funciona perfeitamente:
$ rename -n "s/.*(\d\d).jpg/Foo's Excellent Photo - \.jpg/" * PIC44.jpg renamed as Foo's Excellent Photo - 44.jpg PIC45.jpg renamed as Foo's Excellent Photo - 45.jpg