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

Um comentário: