Você pode fazer isso com o utilitário de linha de comando rename
. Para fazer o que você quer, você precisa de uma expressão regular simples:
rename "s/.+_/ds/g"
files
.+
representa tudo até (neste contexto) o último caractere de sublinhado ( _
) (portanto, isso funciona com vários sublinhados, conforme mencionado em seu primeiro exemplo). Isso requer que haja pelo menos um caractere antes do sublinhado; Se você tiver nomes de arquivos como _20131012.zip
, use .*
. Portanto, essa string de três caracteres ( .+_
ou .*_
) corresponderá a tudo até e incluirá o último sublinhado no nome do arquivo. s/old/new/
significa s ubstitua a nova string ( ds
) para a string antiga. O g
significa g lobal e pode não ser necessário neste caso.