sexta-feira, 9 de dezembro de 2016

Script para remover caracter colchete e e renomear diretórios ou arquivos com espaços no nome

Script para remover caracter colchete e renomear diretórios ou arquivos com espaços no nome


No meu post anterior (link aqui), eu havia ensinado como remover os colchetes de nomes de diretórios, usando um simples script com os comandos mv e sed e, usando uma instrução de laço de repetição for. Este script serve para arquivos sem espaços no nome!

Ao se utilizar espaços em nomes, cada palavra de um nome, será reconhecido pelo shell do Linux como um arquivo distinto!

A solução que encontrei foi, colocar cada nome de arquivo ou diretório em um ARRAY, para poder tratar os nomes de forma distinta!

Segue, abaixo, o script para tratar nomes de arquivos com espaços e colchetes!

script-renomeia2.sh


#!/bin/bash #===============================================================
# script-renomeia2.sh
#===============================================================
# Script para remover colchetes e espaços dos nomes dos arquivos
#
# versão 1.0-ALPHA-20161206
#
# Autor: Marcio C. Bravim - LPI 3 e RHCE

# Consultoria e Treinamento Linux
# marcio.cbravim@yahoo.com.br
# movel/whatsapp: 21 - 96488-6449 (NEXTEL)
#===============================================================
## 


# Valor para primeiro ARRAY
A=0

# Conta total de linhas
X=`ls -G1 | grep "\[" | awk -F[ '{ print $2 }' |  wc -l`

for VAR in `seq 1 $X` ; do


      declare -a ARRAY_NOME_[$A]="`ls -G1 | grep "\[" | head -n $VAR | tail -n 1`"

      mv "${ARRAY_NOME_["$A"]}" "`echo ${ARRAY_NOME_["$A"]} | sed -e 's/\[//' | sed -e 's/\]//'`"

      let A=A+1


done

#=---
# FIM

Execute o script dentro do diretório em que se encontram os arquivos que serão renomeados!

Download do script pode ser feito por aqui: script-renomeia2.sh


Vida longa e Próspera!

#=------
Leu? Deixe um comentário! Compartilhe e Indique! Obrigado!!!
#=------


AUTOR:
Marcio C. Bravim (RJ) – Certificado LPI 3 e RHCE
Consultor Linux / Instrutor
marcio.cbravim@yahoo.com.br / @marciocbravim
Whatsapp (21) 96488-6449

segunda-feira, 5 de dezembro de 2016

Script para remover caracter colchete de nomes de diretórios e arquivos

Script para remover caracter colchete de nomes de diretórios e arquivos



Recentemente, um aluno me procurou com um problema!
Ele trabalha com jukebox (máquinas que tocam músicas) e, os nomes das pastas com os arquivos de músicas, estavam dentro de colchetes. Algo que, o programa que executa os arquivos, não sabia lidar, por causa deste caracter especial!

O diretório contendo os arquivos de músicas, estava, mais ou menos, desse jeito:

aluno@desktop: Musicas$ ls
[Axé] [Dance] [Forró] [Funk] [MPB] [Pagode] [Samba] [Sertanejo]


Ele precisava renomear todas as pastas, preservando seus nomes originais!

A solução: um simples script , com o uso do for, sed e mv, para renomear, de uma só vez, todos os nomes das pastas dos arquivos!

O SCRIPT:  

#!/bin/bash##
#===================================================================
# Script para remover colchetes ("[" e "]") dos nomes dos arquivos
#
# versão 1.0-ALPHA-20161205
#
# Autor: Marcio C. Bravim - LPI 3 e RHCE
# marcio.cbravim@yahoo.com.br
# movel/whatsapp: 21 - 96488-6449 (NEXTEL)
#===================================================================
##

VAR_NOME=`ls -G1 | fmt`
 

for VAR1 in $VAR_NOME ; do
      mv "${VAR1}" "`echo ${VAR1} | sed -e 's/\[//' | sed -e 's/\]//'`"
done

#=---
# FIM

 
A sequência --> `echo ${VAR1} | sed -e 's/\[//' | sed -e 's/\]//'` <-- está dentro de CRASE e ASPAS!

Execute o script dentro do diretório em que se encontram os arquivos que serão renomeados!

Você poderá modificar o script para, retirar qualquer caracter dos nomes dos arquivos!

Download do script pode ser feito por aqui: script-renomeia.sh

Vida longa e Próspera!

#=------
Leu? Deixe um comentário! Compartilhe e Indique! Obrigado!!!
#=------


AUTOR:
Marcio C. Bravim (RJ) – Certificado LPI 3 e RHCE
Consultor Linux / Instrutor
marcio.cbravim@yahoo.com.br / @marciocbravim
Whatsapp (21) 96488-6449