Renomear arquivos listados de uma busca por tipo de aquivo [RESOLVIDO]

1. Renomear arquivos listados de uma busca por tipo de aquivo [RESOLVIDO]

Alealter Pinheiro dos Reis
alealter

(usa Debian)

Enviado em 18/02/2020 - 15:51h

Temos um acervo grande de aquivos que estão nomeados com extensão ".bin" mas de tipos variados de arquivos, PDF,PNG,DOCX...
Precisamos identificar e separar os aquivos do tipo "PDF" para renomear estes corretamente
Já consegui listar estes arquivos com o comando: file /PASTA_DE_ARQUIVOS/* | grep PDF mas não consegui renomear, mover ou copiar os arquivos listados
Tentei usar ( sed -exec rename )

Agradeço qualquer ajuda ou dica


  


2. MELHOR RESPOSTA

Ryuk Shinigami
Ryuk

(usa Nenhuma)

Enviado em 18/02/2020 - 19:42h

Você quer é mudar a extensão ".bin" para ".pdf"???

Tenta assim:
for x in `file /tmp/teste/* | grep PDF | cut -d':' -f1`; do rename -v 's/.bin/.pdf/' "$x" ; done 


Aqui funcionou...
Mas cuidado com nomes que possuem espaços, o "for" precisa de um tratamento especial para isso:

$ ls -1 /tmp/teste/
arq1.bin
arq2.bin
arq3.bin
arq4.bin
arq5.bin
arq6.bin

$ for x in `file /tmp/teste/* | grep PDF | cut -d':' -f1`; do rename -v 's/.bin/.pdf/' "$x" ; done
/tmp/teste/arq1.bin renamed as /tmp/teste/arq1.pdf
/tmp/teste/arq2.bin renamed as /tmp/teste/arq2.pdf
/tmp/teste/arq3.bin renamed as /tmp/teste/arq3.pdf
/tmp/teste/arq4.bin renamed as /tmp/teste/arq4.pdf

$ ls -1 /tmp/teste/
arq1.pdf
arq2.pdf
arq3.pdf
arq4.pdf
arq5.bin
arq6.bin


3. Resolvido

Alealter Pinheiro dos Reis
alealter

(usa Debian)

Enviado em 18/02/2020 - 20:23h

Era isso mesmo, perfeito
Muito obrigado !



4. Re: Renomear arquivos listados de uma busca por tipo de aquivo [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 18/02/2020 - 21:46h

alealter escreveu:

Temos um acervo grande de aquivos que estão nomeados com extensão ".bin" mas de tipos variados de arquivos, PDF,PNG,DOCX...
Precisamos identificar e separar os aquivos do tipo "PDF" para renomear estes corretamente
Já consegui listar estes arquivos com o comando: file /PASTA_DE_ARQUIVOS/* | grep PDF mas não consegui renomear, mover ou copiar os arquivos listados
Tentei usar ( sed -exec rename )

Agradeço qualquer ajuda ou dica

Vi que já foi resolvido, demorei para postar, estava ocupado....
Segue:
#!/bin/bash
dir="/Diretório_Origem/";
for arq in ${dir}*.*;do
tipo=$(file ${arq}|grep -Eo 'PDF|PNG|DOCX');
[ ${tipo} ] && { tipo=${tipo~~}; echo "Renomeando ${arq}"; rename -n "s/\.[a-z]{3,}/\.${tipo}/" ${arq};}
done

Obs.: Apos testes, retire o "-n" no comando rename para efetivar a alteração.

______________________________________________________________________
Att.: Marcelo Oliver
______________________________________________________________________


5. Resolvido

Alealter Pinheiro dos Reis
alealter

(usa Debian)

Enviado em 18/02/2020 - 22:31h

msoliver escreveu:

alealter escreveu:

Temos um acervo grande de aquivos que estão nomeados com extensão ".bin" mas de tipos variados de arquivos, PDF,PNG,DOCX...
Precisamos identificar e separar os aquivos do tipo "PDF" para renomear estes corretamente
Já consegui listar estes arquivos com o comando: file /PASTA_DE_ARQUIVOS/* | grep PDF mas não consegui renomear, mover ou copiar os arquivos listados
Tentei usar ( sed -exec rename )

Agradeço qualquer ajuda ou dica

Vi que já foi resolvido, demorei para postar, estava ocupado....
Segue:
#!/bin/bash
dir="/Diretório_Origem/";
for arq in ${dir}*.*;do
tipo=$(file ${arq}|grep -Eo 'PDF|PNG|DOCX');
[ ${tipo} ] && { tipo=${tipo~~}; echo "Renomeando ${arq}"; rename -n "s/\.[a-z]{3,}/\.${tipo}/" ${arq};}
done

Obs.: Apos testes, retire o "-n" no comando rename para efetivar a alteração.

______________________________________________________________________
Att.: Marcelo Oliver
______________________________________________________________________





Obrigado também
Funcionou com mais que o esperado




6. Re: Renomear arquivos listados de uma busca por tipo de aquivo [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 18/02/2020 - 23:19h

alealter escreveu:

msoliver escreveu:

alealter escreveu:

Temos um acervo grande de aquivos que estão nomeados com extensão ".bin" mas de tipos variados de arquivos, PDF,PNG,DOCX...
Precisamos identificar e separar os aquivos do tipo "PDF" para renomear estes corretamente
Já consegui listar estes arquivos com o comando: file /PASTA_DE_ARQUIVOS/* | grep PDF mas não consegui renomear, mover ou copiar os arquivos listados
Tentei usar ( sed -exec rename )

Agradeço qualquer ajuda ou dica

Vi que já foi resolvido, demorei para postar, estava ocupado....
Segue:
#!/bin/bash
dir="/Diretório_Origem/";
for arq in ${dir}*.*;do
tipo=$(file ${arq}|grep -Eo 'PDF|PNG|DOCX');
[ ${tipo} ] && { tipo=${tipo~~}; echo "Renomeando ${arq}"; rename -n "s/\.[a-z]{3,}/\.${tipo}/" ${arq};}
done

Obs.: Apos testes, retire o "-n" no comando rename para efetivar a alteração.

______________________________________________________________________
Att.: Marcelo Oliver
______________________________________________________________________





Obrigado também
Funcionou com mais que o esperado

alealter, estou postando abaixo com uma alteração,
visto que o DOCX e identificado pelo file, como: "Microsoft Word 2007+"
Alterado:
#!/bin/bash
dir="/Dir_Origem/"; #Alterar
for arq in ${dir}*.bin;do
tipo=$(file ${arq}|grep -Eo 'PDF|PNG|Microsoft Word 2007\+'); #Alterado
[[ "$tipo" =~ (Microsoft Word 2007\+)$ ]] && tipo="DOCX" #Incluído
[ ${tipo} ] && { tipo=${tipo~~}; echo "Renomeando ${arq}"; rename -n "s/\.bin/\.${tipo}/" ${arq};}
done



______________________________________________________________________
Att.: Marcelo Oliver
______________________________________________________________________






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts