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

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

Douglas Dias da Silva
poligno

(usa Outra)

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á!



  


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

Marcelo Oliver
msoliver

(usa Debian)

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)

Douglas Dias da Silva
poligno

(usa Outra)

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?






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts