Simples comando para renomear muitos arquivos *.txt_OLD para *.txt

Essa é mais uma dica “cotidiana” que pode ajudar o Administrador de Sistemas baseados em Linux a passar menos trabalho e evitar perda de tempo bolando soluções mirabolantes..

Supondo que tenhamos o seguinte diretório cialinux/ com estes cinco arquivos:

root@localhost:/tmp/cialinux# ls -la
total 1
drwxr-xr-x  2 root root 208 2009-06-25 20:43 .
drwxrwxrwt 19 root root 648 2009-06-25 20:40 ..
-rw-r–r–  1 root root   0 2009-06-25 20:40 cinco.txt_OLD
-rw-r–r–  1 root root   0 2009-06-25 20:40 dois.txt_OLD
-rw-r–r–  1 root root   0 2009-06-25 20:40 quatro.txt_OLD
-rw-r–r–  1 root root   0 2009-06-25 20:40 tres.txt_OLD
-rw-r–r–  1 root root   0 2009-06-25 20:40 um.txt_OLD
root@localhost:/tmp/cialinux#

Todos eles já foram processados durante a madrugada e renomeados de *.txt para *.txt_OLD. Porém, por algum motivo, você precisa que eles sejam reprocessados, ou seja, fiquem novamente com extensão *.txt.

E agora?

Segue abaixo uma solução utilizando “pipe” redirecionando a saída padrão para o sed, que irá substituir ‘*_OLD‘ por ” (nada):

root@localhost:/tmp/cialinux# for i in *; do mv $i `echo $i | sed s/’.OLD’/”/`; done
root@localhost:/tmp/cialinux# ls -la
total 1
drwxr-xr-x  2 root root 184 2009-06-25 20:50 .
drwxrwxrwt 19 root root 648 2009-06-25 20:40 ..
-rw-r–r–  1 root root   0 2009-06-25 20:40 cinco.txt
-rw-r–r–  1 root root   0 2009-06-25 20:40 dois.txt
-rw-r–r–  1 root root   0 2009-06-25 20:40 quatro.txt
-rw-r–r–  1 root root   0 2009-06-25 20:40 tres.txt
-rw-r–r–  1 root root   0 2009-06-25 20:40 um.txt
root@localhost:/tmp/cialinux#

Neste exemplo foram utilzados apenas cinco arquivos, mas pense numa pasta que tenha este arquivo: trezentosmil.txt_OLD 😉

Pode ser útil a você um dia. Se você conhece outra forma de fazer a mesma coisa, de forma semelhante, ou mais avançada, coloque em comentários.

Por: Hudson Murilo dos Santos

2 interações sobre “Simples comando para renomear muitos arquivos *.txt_OLD para *.txt

  1. Recentemente precisei renomear as extensões de centenas de arquivos, mas esta opção não funcionou porque os arquivos eram de extensão .nes;1 e queria renomeá-los para .nes. Toda a vez em que eu executava o script, ele esbarra no ;1.

    Consegui resolver o problema usando um programa de Ruindows chamado File Renamer.

    Sei que seu script parece ser muito bom, mas acho que dá para aperfeiçoar. O Linux também tem uma ferramenta chamada Thunar, mas eu só consegui instalá-lo depois de ter atualizado minha distro.

    1. Fala mano Paulada!

      Obrigado pela leitura e visita no BLOG bem como colaboração nos comentários.
      Claro que pode ser aperfeiçoado. Tudo aqui pode ser. Tudo é um eterno exercício de aperfeiçoamento.

      Veja como poderias ter feito no mesmo comando, apenas trocando ‘_OLD’ por ‘;1’ no SED:

      [hudson@vostrolab cialinux]$ for i in um dois tres quatro cinco; do touch ${i}.nes;1; done
      [hudson@vostrolab cialinux]$ ls -la
      total 16
      drwxrwxr-x 2 hudson hudson 4096 Mar 10 20:29 .
      drwxrwxrwt. 90 root root 12288 Mar 10 20:28 ..
      -rw-rw-r– 1 hudson hudson 0 Mar 10 20:29 cinco.nes;1
      -rw-rw-r– 1 hudson hudson 0 Mar 10 20:29 dois.nes;1
      -rw-rw-r– 1 hudson hudson 0 Mar 10 20:29 quatro.nes;1
      -rw-rw-r– 1 hudson hudson 0 Mar 10 20:29 tres.nes;1
      -rw-rw-r– 1 hudson hudson 0 Mar 10 20:29 um.nes;1
      [hudson@vostrolab cialinux]$ for i in *; do mv $i `echo $i | sed s/’;1’/”/`; done
      [hudson@vostrolab cialinux]$ ls -la
      total 16
      drwxrwxr-x 2 hudson hudson 4096 Mar 10 20:29 .
      drwxrwxrwt. 90 root root 12288 Mar 10 20:28 ..
      -rw-rw-r– 1 hudson hudson 0 Mar 10 20:29 cinco.nes
      -rw-rw-r– 1 hudson hudson 0 Mar 10 20:29 dois.nes
      -rw-rw-r– 1 hudson hudson 0 Mar 10 20:29 quatro.nes
      -rw-rw-r– 1 hudson hudson 0 Mar 10 20:29 tres.nes
      -rw-rw-r– 1 hudson hudson 0 Mar 10 20:29 um.nes
      [hudson@vostrolab cialinux]$

      Espero ter ajudado.
      E se me permite dar um conselho de amigo da comunidade: Evite buscar recursos para isso em plataforma concorrente. O Bash é sempre o melhor caminho pra manipular essas coisas. Venha e pergunte aqui no CIALINUX que prontamente vamos lhe ajudar sempre. Tanto você quanto todos os leitores e interessados.

      Um forte abraço!! Volte sempre!!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Retype the CAPTCHA code from the image
Change the CAPTCHA codeSpeak the CAPTCHA code