Copiar arquivos com espaco entre o nome

1. Copiar arquivos com espaco entre o nome

M4iir1c10
M4iir1c10

(usa Arch Linux)

Enviado em 02/07/2008 - 10:16h

Pessoal bom dia, minha duvida e sobre um script que estou criando para copiar mais de 1000 arquivos de texto em pastas diferentes.
Tenho comigo 1188 arquivos de texto contendo os capitulos da Biblia, todos eles estao na mesma pasta, fiz um script que vai criar 66 pastas e copiar os arquivos de acordo com o livro por exemplo todos os capitulos de Genesis vao para a pasta 01 todos de Exodus vao para 02 e assim por diante, o problema e que os arquivos tem espaco no nome, tipo "Gen 1.txt" como eu posso apagar esse espaco sem auterar o nome e fazer "Gen 1.txt" virar "Gen1.txt" e como eu poderia incluir esse comando no meu codigo?
Vou passar o codigo logo abaixo.


  


2. Esse e o codigo ate o momento

M4iir1c10
M4iir1c10

(usa Arch Linux)

Enviado em 02/07/2008 - 10:18h

#!/bin/bash

livro[1]="Gen"
livro[2]="Exo"
livro[3]="Lev"
livro[4]="Num"
livro[5]="Deu"
livro[6]="Jos"
livro[7]="Jdg"
livro[8]="Rut"
livro[9]="1Sa"
livro[10]="2Sa"
livro[11]="1Ki"
livro[12]="2Ki"
livro[13]="1Ch"
livro[14]="2Ch"
livro[15]="Ezr"
livro[16]="Neh"
livro[17]="Est"
livro[18]="Job"
livro[19]="Psa"
livro[20]="Prov"
livro[21]="Ecc"
livro[22]="SS"
livro[23]="Isa"
livro[24]="Jer"
livro[25]="Lam"
livro[26]="Eze"
livro[27]="Dan"
livro[28]="Hos"
livro[29]="Joe"
livro[30]="Amo"
livro[31]="Oba"
livro[32]="Jnh"
livro[33]="Mic"
livro[34]="Nah"
livro[35]="Hab"
livro[36]="Zep"
livro[37]="Hag"
livro[38]="Zec"
livro[39]="Mal"
livro[40]="Mat"
livro[41]="Mar"
livro[42]="Luk"
livro[43]="Joh"
livro[44]="Act"
livro[45]="Rom"
livro[46]="1Co"
livro[47]="2Co"
livro[48]="Gal"
livro[49]="Eph"
livro[50]="Php"
livro[51]="Col"
livro[52]="1Th"
livro[53]="2Th"
livro[54]="1Ti"
livro[55]="2Ti"
livro[56]="Tit"
livro[57]="Phl"
livro[58]="Heb"
livro[59]="Jam"
livro[60]="1Pe"
livro[61]="2Pe"
livro[62]="1Jo"
livro[63]="2Jo"
livro[64]="3Jo"
livro[65]="Jud"
livro[66]="Rev"

PASTA=1
while [ $PASTA -lt 67 ]; do
mkdir /var/www/Content/Documents/HTML/$PASTA
let PASTA=PASTA+1
done;

COUNTER=1
while [ $COUNTER -lt 67 ]; do
arquivo=$(find /var/www/Content/Documents/HTML/${livro[$COUNTER]}*);
diretorio="/var/www/Content/Documents/HTML/$COUNTER"
cp $arquivo $diretorio

let COUNTER=COUNTER+1
done


3. Re: Copiar arquivos com espaco entre o nome

Sandro Marcell
SMarcell

(usa Slackware)

Enviado em 02/07/2008 - 10:45h

Entre no diretório onde estão os arquivos e execute:

# Substitui espaços em branco por underlines:
for i in * ; do mv "$i" "${i// /_}" ; done

ou

# Remove espaços em branco:
for i in * ; do mv "$i" "${i// /}" ; done




4. Valeu cara!

M4iir1c10
M4iir1c10

(usa Arch Linux)

Enviado em 02/07/2008 - 12:15h

Valeu pela ajuda, o Fabio me passou algo parecido ficou assim o script:
#!/bin/bash

livro[1]="Gen"
livro[2]="Exo"
livro[3]="Lev"
livro[4]="Num"
livro[5]="Deu"
livro[6]="Jos"
livro[7]="Jdg"
livro[8]="Rut"
livro[9]="1Sa"
livro[10]="2Sa"
livro[11]="1Ki"
livro[12]="2Ki"
livro[13]="1Ch"
livro[14]="2Ch"
livro[15]="Ezr"
livro[16]="Neh"
livro[17]="Est"
livro[18]="Job"
livro[19]="Psa"
livro[20]="Prov"
livro[21]="Ecc"
livro[22]="SS"
livro[23]="Isa"
livro[24]="Jer"
livro[25]="Lam"
livro[26]="Eze"
livro[27]="Dan"
livro[28]="Hos"
livro[29]="Joe"
livro[30]="Amo"
livro[31]="Oba"
livro[32]="Jnh"
livro[33]="Mic"
livro[34]="Nah"
livro[35]="Hab"
livro[36]="Zep"
livro[37]="Hag"
livro[38]="Zec"
livro[39]="Mal"
livro[40]="Mat"
livro[41]="Mar"
livro[42]="Luk"
livro[43]="Joh"
livro[44]="Act"
livro[45]="Rom"
livro[46]="1Co"
livro[47]="2Co"
livro[48]="Gal"
livro[49]="Eph"
livro[50]="Php"
livro[51]="Col"
livro[52]="1Th"
livro[53]="2Th"
livro[54]="1Ti"
livro[55]="2Ti"
livro[56]="Tit"
livro[57]="Phl"
livro[58]="Heb"
livro[59]="Jam"
livro[60]="1Pe"
livro[61]="2Pe"
livro[62]="1Jo"
livro[63]="2Jo"
livro[64]="3Jo"
livro[65]="Jud"
livro[66]="Rev"

for i in `ls | sed 's/ /_/g'`
do
ARQ=`echo $i | sed 's:_: :g'`
mv "$ARQ" $i
done

PASTA=1
while [ $PASTA -lt 67 ]; do
mkdir /var/www/Content/Documents/HTML/$PASTA
let PASTA=PASTA+1
done;

COUNTER=1
while [ $COUNTER -lt 67 ]; do
arquivo=$(find /var/www/Content/Documents/HTML/${livro[$COUNTER]}*);
diretorio="/var/www/Content/Documents/HTML/$COUNTER"
cp $arquivo $diretorio

let COUNTER=COUNTER+1
done

quem quizer usar para alguma coisa o script e open-source hehehehhehehe






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts