Altera o final de vários nomes de arquivos semelhantes [duplicados]

2

Eu tenho muitos arquivos semelhantes a este:

56.mp3?referredby=rss

O que eu quero fazer é remover o ?referredby=rss para que eles sejam assim:

56.mp3

Como eu faria isso?

    
por Proletariat 21.04.2017 / 15:48

2 respostas

6

Se você tem Perl rename , é tão fácil quanto

rename 's/\?referredby=rss//' ./*referredby=rss

com util-linux rename :

rename '?referredby=rss' '' ./*referredby=rss
    
por 21.04.2017 / 15:50
2

Além de escapar do ? (que tem um significado especial nas expressões glob), isso não é diferente de renomear qualquer outro arquivo: assim, por exemplo, você poderia usar um simples loop de shell

for f in *.mp3\?referredby=rss; do mv -- "$f" "${f%\?*}"; done

em que ${f%\?*} é uma expansão de parâmetro do shell que remove o menor elemento à direita correspondente a \?*

    
por 21.04.2017 / 15:57