Pular para o conteúdo

[Sehll script] Reconhecendo arquivos com nome composto por backspace(espaço)

Responder tópico
  • Denunciar
  • Indicar

1. [Sehll script] Reconhecendo arquivos com nome composto por backspace(espaço)

Enviado em 04/11/2016 - 15:57h

Olá galera,fiz 2 shell scripts que automatizam o processo de checksums de mais de 1k de arquivos. Porém no script o qual recebe como parâmetro o path do diretório e invoca outro script passando este path como parâmetro não está funcionando exatamente como eu queria...quando ele 'esbarra' em um arquivo que possui espaço no nome ele considera como se fossem dois arquivos, pesquisando sobre o assunto vi que esse erro é bem clássico,porém as soluções que achei não serviram no meu caso;
Segue a baixo os meus dois scripts:

primeiro(recebe o path como parametro e chama o segundo script):

!/bin/bash

find $1 -type f -exec bash ./task2.sh "{}" \;
#find $1 -type f -print0 | xargs -0 -n1 -I{} ./task2.sh "{}"
segundo(recebe os diretório encontrados pelo primeiro script como parâmetros,converte em string,separa linha por linha e faz a checksum):

#/bin/bash

#checksum=$(hashdeep ~/Documents/backup_corridas/2014/mnt/gv0/miseq/MiSeqOutput/140319_M02526_0001_000000000-A6Y39/RunParameters.xml)
checksum=$(hashdeep $1)
concatenado=''

for i in $checksum
do
concatenado+=$i

done

IFS=',' read -ra ADDR <<< "$concatenado" #IFS faz com que a variavel ADDR recebe os valores separados por virgula retonados pra variavel chegsum

if [ -z ${ADDR[4]} ]; then
echo
echo 'Checksum FILE:' $1
echo 'Checksum HASH:' ${ADDR[4]}
echo
fi

echo ${ADDR[4]} $1 >> txt.txt
PS:Comecei aprender shell essa semana.

Bom,é isso,espero que a questão tenha ficado clara.
Grato desde já!

Responder tópico

2. Re: [Sehll script] Reconhecendo arquivos com nome composto por backspace(espaço)

Enviado em 04/11/2016 - 17:17h

Boa tarde poligno.
Para "LISTAR" os arquivos com "ESPAÇO", use o seguinte comando:
for i in *' '* ; do echo "$i" ; done 

Att.:
Marcelo Oliver

3. Re: [Sehll script] Reconhecendo arquivos com nome composto por backspace(espaço)

Enviado em 07/11/2016 - 08:48h

msoliver escreveu:

Boa tarde poligno.
Para "LISTAR" os arquivos com "ESPAÇO", use o seguinte comando:
for i in *' '* ; do echo "$i" ; done 

Att.:
Marcelo Oliver
Você poderia me explicar o comando? Acho que não entendi muito bem,por que
i in *' '*
em não devia ser no parâmetro que recebe o path ou algo assim?

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder