
Eu tenho muitos arquivos parecidos com este:
56.mp3?referredby=rss
O que eu quero fazer é remover ?referredby=rss
para que fiquem assim:
56.mp3
Como eu faria isso?
Responder1
Se você tiver Perl rename
, é tão fácil quanto
rename 's/\?referredby=rss//' ./*referredby=rss
Com util-linux
rename
:
rename '?referredby=rss' '' ./*referredby=rss
Responder2
Além de escapar do ?
(que tem um significado especial em expressões glob), isso não é diferente de renomear qualquer outro arquivo: então, por exemplo, você poderia usar um simples loop de shell
for f in *.mp3\?referredby=rss; do mv -- "$f" "${f%\?*}"; done
onde ${f%\?*}
está uma expansão de parâmetro do shell que remove a correspondência de elemento final mais curta\?*