Você pode usar grupos de captura e referências anteriores , por exemplo
rename -vn -- 's/\.(pdb)\.(\d+)/_$2.$1/' *.pdb.*
para corresponder a um período literal \.
seguido por (literal) sequência pdb
, seguido por um segundo período \.
e, em seguida, uma sequência de um ou mais dígitos \d+
, copiando a sequência e a sequência de dígitos em numerados capture os grupos $1
e $2
respectivamente e, em seguida, substitua-os na ordem inversa com um sublinhado no lugar do primeiro período.
As opções -v
e -n
são para saída detalhada (listando as alterações feitas) e sem operação, permitindo que você teste a correção antes de confirmar qualquer substituição real: você precisará remover a n
opção para realmente aplicar as alterações .
O --
marca as opções de fim de comando - isso apenas torna o comando mais robusto no caso raro de você ter nomes de arquivos que começam com um hífen.
Teste-o em um diretório contendo arquivos file.pdb.1 file.pdb.2 file.pdb.3 file.pdb.4 file.pdb.5
(entre outros):
$ rename -vn -- 's/\.(pdb)\.(\d+)/_$2.$1/' *.pdb.*
file.pdb.1 renamed as file_1.pdb
file.pdb.2 renamed as file_2.pdb
file.pdb.3 renamed as file_3.pdb
file.pdb.4 renamed as file_4.pdb
file.pdb.5 renamed as file_5.pdb