Criar shell de busca [RESOLVIDO]

1. Criar shell de busca [RESOLVIDO]

Samuel Amaro da Silva
samorvell

(usa Ubuntu)

Enviado em 06/10/2014 - 14:03h

Boa tarde!
Galera, criei um shell script para buscar um arquivo em diretório x, listar o arquivo, e executar o tail com as duas ultimas linhas, depois eu descobri que quando acontece o erro para um programa não tenho que analisar apenas um arquivo mas sim vários, a quantidade de arquivo varia de acordo com erro.
Então a principio fiz o seguinte shell:

#! /bin/bash
cd /home2/samorvell/st_rcv/str_000$1 #Informar numero da loja
ls -ltr $2* #Arquivo a ser analisado
dia=`julian` #Dia juliano
tail -2 $2$dia #Resultado esperado

Dessa forma consigo resultado esperado, mas como faço para ele executar esse mesmo processo, porem para mais arquivos, por exemplo se eu precisar dos aquivos 1, 4, 5, 6 e 9, para me trazer o resultado do tail para varios arquivos.

tentei fazer assim mas não deu certo:

#! /bin/bash


cd /home2/smorvell/st_rcv/str_000$1
dia=`julian` #dia juliano
ls -ltr $2*$dia
ls -ltr $3*$dia
ls -ltr $4*$dia
ls -ltr $5*$dia #Arquivo a ser analisado
tail -2 $2$dia
tail -2 $3$dia
tail -2 $4$dia
tail -2 $5$dia #Resultado esperado

também não deu certo, no caso acima nem o diretório ele esta encontrando.


Agradeço desde já pela ajuda.


  


2. Re: Criar shell de busca [RESOLVIDO]

luiz
luizsouza99

(usa Linux Mint)

Enviado em 23/10/2014 - 11:58h

Já que o tópico foi resolvido coloque a solução para ajudar a galera futuramente.


3. Ficou assim!

Samuel Amaro da Silva
samorvell

(usa Ubuntu)

Enviado em 23/10/2014 - 12:46h

#! /bin/bash
clear
echo "Informe o numero da loja:"
read LOJA
echo "Informe a quantidade de arquivos:"
read QTD
echo "Informe a data para analise dos arquivos aaaammdd:"
read DATA
dia=`julian $DATA` #Variavel para armazenar o dia juliano
day=`date --date="-1 day" +20%y%m%d`
#echo "Dia juliano da data informada:$dia"
echo

if [ $DATA != $day ] ; then
for i in $( seq $QTD ) ; do
echo "Informe o nome do $i° arquivo"
read ARQ
cd /home2/Store/st_rcv/str_000$LOJA/old
ls -ltr $ARQ$dia*
echo "Deseja descompactar e analisar arquivos?"
read RESP
if [ $RESP != sim ] ; then
echo "Ok!"
else
ls -ltr $ARQ$dia.gz
cp /home2/Store/st_rcv/str_000$LOJA/old/$ARQ$dia.gz /tmp
cd /tmp
gzip -d $ARQ$dia.gz
tail -2 $ARQ$dia
fi
done
else
for i in $( seq $QTD ) ; do
echo "Informe o nome do $i° arquivo"
read ARQ
cd /home2/Store/st_rcv/str_000$LOJA/
ls -ltr $ARQ$dia
head -2 $ARQ$dia
tail -2 $ARQ$dia
done

fi



Assim consegui fazer funcionar, tinha uma dificuldade para datas, pois se a data informada fosse maior que o dia anterior teria que buscar em outro diretório, não sabia como fixar uma variável na data então pesquisei um pouco achei isso e me caiu como uma luva:
day=`date --date="-1 day" +20%y%m%d`







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts