Remover arquivos com espacos em branco

1. Remover arquivos com espacos em branco

Moises
moshe

(usa Ubuntu)

Enviado em 07/06/2010 - 20:50h

Pessoal,

Estou utilizando um script que gera um arquivo com todos os arquivos de musicas em uma certa pasta, depois faço um looping lendo esse arquivo e vou apagar um a um, enviando email para os donos desse arquivo, so que quando uma pasta tem um espaco em branco ou nome do arquivo possui espaco em branco, retorna um erro.

Alguém poderia ajudar-me, segue uma copia do scripts que estou usando..


#!/bin/bash
#exclui o arquivo antigo arquivos_musica.txt
rm arquivos_musica.txt

# Faz a busca em um diretorio especifico e gera uma lista chamada arquivos_musica.txt
find /home -name "*.mp[3-4]" -type f > arquivos_musica.txt

# Faz a leitura do arquivo arquivos_musicas.txt, captura os dados, apaga os arquivos e envia email para o dono do arquivo

for x in `cat arquivos_musica.txt`
do
user=`ls -l ${x} | awk '{ print $3}'`
file=`echo ${x}`
recipient=${user}@localhost

rm ${file}

sendEmail -t ${recipient} -f suporte@localhost -cc suporte@localhost -u "Restricao de arquivo" -m "O arquivo ${file} foi apagado do seu diretorio, devido restricao de tipo de arquivo, favor excluir este arquivo de sua pasta de sincronismo"

done


  


2. Re: Remover arquivos com espacos em branco

Perfil removido
removido

(usa Nenhuma)

Enviado em 08/06/2010 - 01:37h

Isso deve dar conta...

Use sed sempre ;)









for x in `cat arquivos_musicas.txt | sed 's/ /_/g'`; do
...
file=`echo ${x} | sed 's/_/ /g'`
...
done





3. Re: Remover arquivos com espacos em branco

Richard Andrade
richardandrade

(usa Debian)

Enviado em 08/06/2010 - 09:33h

Sim, dará conta, o que o amigo acima está fazendo é todo espaço que tiver nesses arquivos irá ser substituido para underline ( _ ) e depois no echo estará fazendo ao contrário.

Bem pensado, parabéns.

valeu e abraço.


4. Re: Remover arquivos com espacos em branco

Moises
moshe

(usa Ubuntu)

Enviado em 08/06/2010 - 22:37h

Galera,

Valeu ao auxilio, mas fiz uma busca na net e achei um jeito bem mais simples, depois de penar um pouco..(rs)
Segue copia do script para fazer isso bem simples...

!/bin/bash
#exclui o arquivo antigo arquivos_musica.txt
rm arquivos_musica.txt

# Faz a busca em um diretorio especifico e gera uma lista chamada arquivos_musica.txt
find /home -name "*.mp[3-4]" -type f > arquivos_musica.txt

# Faz a leitura do arquivo arquivos_musicas.txt, captura os dados, apaga os arquivos e envia email para o dono do arquivo

#Troca do conteudo da variavel IFS
OLD_IFS=$IFS
IFS=$'\n'

for x in `cat arquivos_musica.txt`
do
user=`ls -l ${x} | awk '{ print $3}'`
file=`echo ${x}`
recipient=${user}@localhost

rm ${file}

sendEmail -t ${recipient} -f suporte@localhost -cc suporte@localhost -u "Restricao de arquivo" -m "O arquivo ${file} foi apagado do seu diretorio, devido restricao de tipo de arquivo, favor excluir este arquivo de sua pasta de sincronismo"

done
#Volta ao conteudo original
IFS=$OLD_IFS


Mas obrigado a todos pelas respostas

Att








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts