for file in * ; do mv $file $(echo $file | sed 's/_039/_036_2') ; done
Explicação:
for file in * ; do _______ ; done
O bash executará a expansão do shell em *
para listar todos os arquivos no diretório de trabalho. Para cada um desses arquivos, essa estrutura de comando definirá a variável file
como igual ao nome do arquivo e executará o comando entre ; do
e ; done
mv $file _______
mv
é a maneira tradicional de renomear arquivos no unix / linux. Ele renomeia file
para _______
echo $file | sed 's/_039/_036_2'
echo $file | sed
simplesmente enviará " file
" para o stdin de sed
, onde sed
substituirá "_039" por "_036_2"
Completamente: para cada arquivo no diretório atual, renomeie o arquivo, substituindo "_039" por "_036_2"