msoliver
(usa Debian)
Enviado em 20/08/2019 - 21:24h
duducarvalho86 escreveu:
Fala Pessoal, blz?
Tô com um probleminha aqui pois preciso renomear muitos arquivos (muitos de verdade) porém eu preciso que o comando ou caso não tenha como fazer isso via Shell script alguma dica por fora, para renomear os arquivos seguindo o exemplo que colocarei mais abaixo...
Nomes orignais:
Eduardo.asc
Ronaldo.asc
Ronaldo.asc
Ronaldo.asc
Diego.asc
Diego.asc
Diego.asc
Diego.asc
Diego.asc
Diego.asc
Bruna.asc
Bruna.asc
Nomes desejados:
Eduardo.asc
Ronaldo_01.asc
Ronaldo_02.asc
Ronaldo_03.asc
Diego_01.asc
Diego_02.asc
Diego_03.asc
Diego_04.asc
Diego_05.asc
Diego_06.asc
Bruna_01.asc
Bruna_02.asc
Certezas: nenhum dos nomes principais voltarão a aparecer (Os Ronaldo.asc só aparecerão ali, não se repetirão como nome de outros arquivos mais abaixo)
Esse aí vai ser pra salvar meu 2019 rs
Desde já eu agradeço a comunidade.
Abraços
Boa noite .
Segue...
#!/bin/bash
#BUSCA ARQUIVOS COM O MESMO NOME
ext="asc"
linha=0;
find -iname "*.${ext}"|awk -F'\/' '{print $NF":"$0}'|sort > relacao_00
cut -d':' -f1 relacao_00|uniq > relacao_01
nreg=$(wc -l < relacao_01)
while ((linha<nreg));do
let linha++;
line=$(sed -n "${linha}p" relacao_01)
ARQ=$(cut -d":" -f1 <<< $line);
qtdd=$(grep -c "${ARQ}:" relacao_00)
if ((qtdd>1));then
read -e -p " Renomear Arquivos \"$ARQ\"? SN: " -n1 RESP
if [[ $RESP =~ ^([Ss])$ ]];then
for((n=1;n<=qtdd;n++));do
N=$(printf "%02d" $n);
NOME="${ARQ/.$ext/_$N}"
CAMINHO=$(grep "${ARQ}:" relacao_00|sed -n "${n}p"|cut -d":" -f2)
echo " cp ${CAMINHO} ${CAMINHO/$ARQ/}$Shell Script.${ext}" #coloquei echo para testar.....
done
else
echo " NAO ALTERAR"
fi
else
echo " Somente Um arquivo $ARQ";
fi
done
Importante => echo -e "$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')"
Att.: Marcelo Oliver