Supondo que você esteja usando um shell da família Bourne, é possível remover a menor correspondência de substring de início até e incluindo um sublinhado de uma variável de nome de arquivo f
usando ${f#*_}
Ex.
$ touch Voice_XYZZ_1_1801.pdf Voice_XYZZ_1_1801.ndx Electon_MNOPQ_1_1801.pdf Electon_MNOPQ_1_1801.ndx
$ for f in Voice_* Electon_*; do echo "${f#*_}"; done
XYZZ_1_1801.ndx
XYZZ_1_1801.pdf
MNOPQ_1_1801.ndx
MNOPQ_1_1801.pdf
Você pode usar isso junto com o comando mv
para renomear arquivos.
for f in Voice_* Electon_*; do mv "$f" "${f#*_}"; done
Copiar para outro local pode ser feito de forma semelhante com o comando cp
, por exemplo,
for f in Voice_* Electon_*; do cp "$f" "newdir/${f#*_}"; done