shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Ajuda na saída do resulta no script


From: Bezaleel Ramos
Subject: Re: [shell-script] Ajuda na saída do resulta no script
Date: Tue, 5 Aug 2014 17:13:49 -0300

MrBits

Você não é o culpado mestre, é o aluno que é burro mesmo  :).. huahauah

Deu certo

Obrigado,



Em 5 de agosto de 2014 16:50, MrBiTs address@hidden [shell-script] <address@hidden> escreveu:
 

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256



On 08/05/2014 01:44 PM, Bezaleel Ramos address@hidden [shell-script] wrote:
>
>
> Galera,
>
> Estou precisando de uma ajuda com relação a um script que estou criando, quem poder me ajudar
>
> Só para esclarecer, criei um arquivo com a seguintes informações:
>
> # dir_oracle.txt /global/dba_producao/trace/oradwh/diag/rdbms/oradwh/oradwh1/trace/alert_oradwh1.log
> /global/dba_producao/trace/orapef/diag/rdbms/orapef/orapef1/trace/alert_orapef1.log
>
> O script esta da seguinte forma:
>
> #!/bin/ksh Dir=/home/bramos/dir_oracle.txt File=$(cut -d'/' -f11 $Dir) Format=`date +%b\ \%d\ \%H:..:..\ \%Y` Ora=$1
>
> while read Dir; do find $Dir -mtime +15 | grep -i "$File" | tail -100 |sort -u | grep -iv "$Format"| grep -i $Ora if [ $?
> -eq 0 ] then echo "$Ora on file $Dir" else
>
> echo "$Ora is not search on dir $Dir"
>
> fi done < $Dir
>
> O meu problema esta no echo(eu acho), pois queria informar somente o arquivo e não o diretório, por exemplo:
>
> ORA-06512 is not search on file alert_oradwh1.log ORA-06512 is not search on file alert_orapef1.log
>
>
> Quando altero no echo para "*echo "$Ora on file $File"* tenho o seguinte resultado:

>
> ORA-06512 is not search on file alert_oradwh1.log alert_orapef1.log ORA-06512 is not search on file alert_orapef1.log
> alert_oradwh1.log

E ae Beza? Tanto tempo comigo e não aprendeu nada? Isso denota um mau mestre :)

O problema está no fato de que há mais de uma ocorrência no arquivo, criando assim uma lista. Se você faz File=$(cut -d'/' -f11
$Dir), na verdade você está cortando todos os elementos da lista dir_oracle.txt e jogando para a lista $File. Então, $File vale:
alert_oradwh1.log
alert_orapef1.log

O que você precisa fazer é iterar $Dir e aplicar o cut para cada elemento dele, assim:

for Dir_interno in $(cat $Dir); do
File=$(echo $Dir_interno | cut -d'/' -f11)
...
done

Para efeito de otimização, faça assim:

File=${Dir_interno##*/}

Abraço

- --
echo
920680245503158263821824753325972325831728150312428342077412537729420364909318736253880971145983128276953696631956862757408858710644955909208239222408534030331747172248238293509539472164571738870818862971439246497991147436431430964603600458631758354381402352368220521740203494788796697543569807851284795072334480481413675418412856581412376640379241258356436205061541557366641602992820546646995466P
| dc

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQEcBAEBCAAGBQJT4TWHAAoJEG7IGPwrPKWrQpkH/1bpTyD0DyQvcXDxkRfu7bN8
tw7bflOyPBTjLZDePXKzzDPJT94RqSGRiu00xqFOTLX9nCF8gH0AZQU4sVQBRQJO
sY8pQwYG7pCOGA3qCpIEppkIrFOaCPa/eHHhQftZ18jlNCRK0zIeHuVyUVUcuMUZ
aDE5ijzQ7TEw2v/7ato7fINUVoLqRBONzZsT80Uu/+Hf8AvjusAYJ5OnllZapIlC
UGrE++i/bDRWIRQAgJNbcWddCasZn6xxWlqHmz0odIffxMQplPGTQDEdPqLCAy2z
lhoPiAe1Dl7XvcudpmqGGAcaDcLcCVGnO3IO+cMLX7RUi/GQridGH3Tb62MXk+Q=
=YAw3
-----END PGP SIGNATURE-----




--



Bezaleel Ramos da Silva
Tel. (21)  97996-1531
ZABBIX Certified Specialist
ZABBIX for Large Environments



reply via email to

[Prev in Thread] Current Thread [Next in Thread]