[shell-script] Duvidas While Read
Pessoal, Estou fazendo um while read encadeado dentro de outro, mas o segundo está anulando o primeiro. Alguém sabe me dizer se existe restrição neste caso? [moderação] vc poderia publicar o seu script em um site como o pastebin.com -- mandar algo tão 'largo' via emais as vezes fica confuso[/moderação] exemplo: cat $ORATAB | while read LINE do case $LINE in \#*) ;; #Somente comentario *) ORACLE_SID=$(echo $LINE | awk -F: '{print $1}') if ! [ "$ORACLE_SID" = '*' -o "$ORACLE_SID" = "" ] ; then LOGFILE=log.$ORACLE_SID.$DATA rm -f $LOGFILE echo cut -c 1,1-30 |nl $ORACLE_BASE/admin/$ORACLE_SID/bdump/alert_$ORACLE_SID.log|grep "$DAT1" |grep "$ANO" |while read LINEALERT do NUMERO=$(echo $LINEALERT | awk -F" " '{print $1}') break done # # nl $ORACLE_BASE/admin/$ORACLE_SID/bdump/alert_$ORACLE_SID.log |while read LINELOG # do # VALORLINELOG=$(echo $LINELOG | awk -F" " '{print $1}') # if [ $VALORLINELOG -gt $NUMERO ];then # echo $LINELOG | tee -a $LOGFILE # fi # done fi ;; esac done
[shell-script] substituir caracter em valor da variavel.
[moderacao]Teste assim : echo ${VAR#0} [/moderacao] Pessoal, Estou me aventurando em shell-script e estou me deparando com algumas dificuldades devido a falta de conhecimento técnico. O caso é que eu preciso de uma variável contendo o dia atual extraído do date +"%d". Ex: DIA=`date +"%d"` echo $DIA = 04 Eu preciso substituir o 0 do valor da variável por espaço " ". Porque o relatório gerado pelo Oracle adiciona espaço no lugar do 0 e eu não consigo localizar a linha por conta disto. Alguém tem alguma dica para eu substituir o 0 pelo espaço? eu tentei o seguinte: DIA=${DIA/#0/" "} mas retorna o segunte erro: ksh: DIA=${DIA/#0/" "}: 0403-011 The specified substitution is not valid for this command. Obrigado a todos, Humberto Marino
Re: RES: [shell-script] substituir caracter em valor da variavel.
Elvio, Só tem um detalhe, eu preciso do espaço no lugar do zero a string original é "04" e deve ser " 4" Obrigado pela ajuda, Humberto Marino --- Em shell-script@yahoogrupos.com.br, Élvio Barbalho <[EMAIL PROTECTED]> escreveu > > Acho que resolve > > [EMAIL PROTECTED] elvio]$ d=$(date +"%d") > [EMAIL PROTECTED] elvio]$ echo $d > 04 > [EMAIL PROTECTED] elvio]$ d=$(echo $d | sed 's/^0//') > [EMAIL PROTECTED] elvio]$ echo $d > 4 > [EMAIL PROTECTED] elvio]$ d=$(echo $d | sed 's/^0/ /') > [EMAIL PROTECTED] elvio]$ echo $d > 4 > [EMAIL PROTECTED] elvio]$ > > - Mensagem original - > De: shell-script@yahoogrupos.com.br > [SMTP:[EMAIL PROTECTED] Em nome de h_marinox > Enviada em: terça-feira, 4 de setembro de 2007 12:00 > Para: shell-script@yahoogrupos.com.br > Assunto:[shell-script] substituir caracter em valor > da variavel. > > [moderacao]Teste assim : echo ${VAR#0} [/moderacao] > > Pessoal, > > Estou me aventurando em shell-script e estou me deparando com > algumas dificuldades devido a falta de conhecimento técnico. > > O caso é que eu preciso de uma variável contendo o dia atual > extraído do date +"%d". > Ex: > > DIA=`date +"%d"` > > echo $DIA = 04 > > Eu preciso substituir o 0 do valor da variável por espaço " ". > Porque o relatório gerado pelo Oracle adiciona espaço no lugar do 0 > e > eu não consigo localizar a linha por conta disto. > > Alguém tem alguma dica para eu substituir o 0 pelo espaço? > > eu tentei o seguinte: > > DIA=${DIA/#0/" "} > > mas retorna o segunte erro: > > ksh: DIA=${DIA/#0/" "}: 0403-011 The specified substitution is not > valid for this command. > > Obrigado a todos, > > Humberto Marino >
Re: RES: [shell-script] substituir caracter em valor da variavel.
Como faço isso? Não estou conseguindo colocar o espaço. Obrigado --- Em shell-script@yahoogrupos.com.br, "Tiago Barcellos Peczenyj" <[EMAIL PROTECTED]> escreveu > > Ai vc troca o 0 do começo da string por um espaço em branco via SED ;-) > > On 9/4/07, h_marinox <[EMAIL PROTECTED]> wrote: > > > > Elvio, > > > > Só tem um detalhe, eu preciso do espaço no lugar do zero > > > > a string original é "04" e deve ser " 4" > > > > Obrigado pela ajuda, > > > > Humberto Marino > > > > --- Em shell-script@yahoogrupos.com.br , > > Élvio Barbalho > > escreveu > > > > > > > > Acho que resolve > > > > > > [EMAIL PROTECTED] elvio]$ d=$(date +"%d") > > > [EMAIL PROTECTED] elvio]$ echo $d > > > 04 > > > [EMAIL PROTECTED] elvio]$ d=$(echo $d | sed 's/^0//') > > > [EMAIL PROTECTED] elvio]$ echo $d > > > 4 > > > [EMAIL PROTECTED] elvio]$ d=$(echo $d | sed 's/^0/ /') > > > [EMAIL PROTECTED] elvio]$ echo $d > > > 4 > > > [EMAIL PROTECTED] elvio]$ > > > > > > - Mensagem original - > > > De: shell-script@yahoogrupos.com.br > > > [SMTP:shell-script@yahoogrupos.com.br] > > Em nome de h_marinox > > > Enviada em: terça-feira, 4 de setembro de 2007 12:00 > > > Para: shell-script@yahoogrupos.com.br > > > Assunto: [shell-script] substituir caracter em valor > > > da variavel. > > > > > > [moderacao]Teste assim : echo ${VAR#0} [/moderacao] > > > > > > Pessoal, > > > > > > Estou me aventurando em shell-script e estou me deparando com > > > algumas dificuldades devido a falta de conhecimento técnico. > > > > > > O caso é que eu preciso de uma variável contendo o dia atual > > > extraído do date +"%d". > > > Ex: > > > > > > DIA=`date +"%d"` > > > > > > echo $DIA = 04 > > > > > > Eu preciso substituir o 0 do valor da variável por espaço " ". > > > Porque o relatório gerado pelo Oracle adiciona espaço no lugar do 0 > > > e > > > eu não consigo localizar a linha por conta disto. > > > > > > Alguém tem alguma dica para eu substituir o 0 pelo espaço? > > > > > > eu tentei o seguinte: > > > > > > DIA=${DIA/#0/" "} > > > > > > mas retorna o segunte erro: > > > > > > ksh: DIA=${DIA/#0/" "}: 0403-011 The specified substitution is not > > > valid for this command. > > > > > > Obrigado a todos, > > > > > > Humberto Marino > > > > > > > > > > > > > -- > Tiago B Peczenyj > Linux User #405772 > > http://peczenyj.blogspot.com/ > > > [As partes desta mensagem que não continham texto foram removidas] >
Re: RES: RES: [shell-script] substituir caracter em valor da variavel .
Elvio, to chato né...rs Eu entendi o exemplo, mas o problema é que ainda sim só retorna o 4 e eu preciso de [espaço]4.(_4). Falta pouquinho, mas não estou achando como inserir espaço antes do caracter que sobra. Valeu pela atenção --- Em shell-script@yahoogrupos.com.br, Élvio Barbalho <[EMAIL PROTECTED]> escreveu > > Humberto no último exemplo esta como vc quer veja: > > [EMAIL PROTECTED] elvio]$ d=$(date +"%d") > [EMAIL PROTECTED] elvio]$ d=$(echo $d | sed 's/^0/ /') > [EMAIL PROTECTED] elvio]$ echo $d > 4 > [EMAIL PROTECTED] elvio]$ echo "$d" > 4 > > > - Mensagem original - > De: shell-script@yahoogrupos.com.br > [SMTP:[EMAIL PROTECTED] Em nome de h_marinox > Enviada em: terça-feira, 4 de setembro de 2007 14:21 > Para: shell-script@yahoogrupos.com.br > Assunto:Re: RES: [shell-script] substituir caracter > em valor da variavel. > > Elvio, > > Só tem um detalhe, eu preciso do espaço no lugar do zero > > a string original é "04" e deve ser " 4" > > Obrigado pela ajuda, > > Humberto Marino > > --- Em shell-script@yahoogrupos.com.br > <mailto:shell-script%40yahoogrupos.com.br> , Élvio Barbalho > escreveu > > > > Acho que resolve > > > > [EMAIL PROTECTED] elvio]$ d=$(date +"%d") > > [EMAIL PROTECTED] elvio]$ echo $d > > 04 > > [EMAIL PROTECTED] elvio]$ d=$(echo $d | sed 's/^0//') > > [EMAIL PROTECTED] elvio]$ echo $d > > 4 > > [EMAIL PROTECTED] elvio]$ d=$(echo $d | sed 's/^0/ /') > > [EMAIL PROTECTED] elvio]$ echo $d > > 4 > > [EMAIL PROTECTED] elvio]$ > > > > - Mensagem original - > > De: shell-script@yahoogrupos.com.br > <mailto:shell-script%40yahoogrupos.com.br> > > [SMTP: shell-script@yahoogrupos.com.br > <mailto:shell-script%40yahoogrupos.com.br> ] Em nome de h_marinox > > Enviada em: terça-feira, 4 de setembro de 2007 12:00 > > Para: shell-script@yahoogrupos.com.br > <mailto:shell-script%40yahoogrupos.com.br> > > Assunto: [shell-script] substituir caracter em valor > > da variavel. > > > > [moderacao]Teste assim : echo ${VAR#0} [/moderacao] > > > > Pessoal, > > > > Estou me aventurando em shell-script e estou me deparando com > > algumas dificuldades devido a falta de conhecimento técnico. > > > > O caso é que eu preciso de uma variável contendo o dia atual > > extraído do date +"%d". > > Ex: > > > > DIA=`date +"%d"` > > > > echo $DIA = 04 > > > > Eu preciso substituir o 0 do valor da variável por espaço " ". > > Porque o relatório gerado pelo Oracle adiciona espaço no lugar do > 0 > > e > > eu não consigo localizar a linha por conta disto. > > > > Alguém tem alguma dica para eu substituir o 0 pelo espaço? > > > > eu tentei o seguinte: > > > > DIA=${DIA/#0/" "} > > > > mas retorna o segunte erro: > > > > ksh: DIA=${DIA/#0/" "}: 0403-011 The specified substitution is not > > valid for this command. > > > > Obrigado a todos, > > > > Humberto Marino > > >
Re: RES: RES: [shell-script] substituir caracter em valor da variavel .
Perfeito, Obrigado pessoal Humberto Marino --- Em shell-script@yahoogrupos.com.br, "Flavio Junior" <[EMAIL PROTECTED]> escreveu > > Seu probelma não é inserir o espaço ali... > Seu problema é q o espaço mais a esquerda é ignorado pelo shell: > lazlo:/logs# x=" a" > lazlo:/logs# echo $x > a > lazlo:/logs# echo "$x" > a > > Talvez isso ajude. > > > Flávio do Carmo Junior > > On 9/4/07, h_marinox <[EMAIL PROTECTED]> wrote: > > > > Elvio, to chato né...rs > > > > Eu entendi o exemplo, mas o problema é que ainda sim só retorna o 4 > > e eu preciso de [espaço]4.(_4). Falta pouquinho, mas não estou achando > > como inserir espaço antes do caracter que sobra. > > > > Valeu pela atenção > > > > --- Em shell-script@yahoogrupos.com.br , > > Élvio Barbalho > > escreveu > > > > > > Humberto no último exemplo esta como vc quer veja: > > > > > > [EMAIL PROTECTED] elvio]$ d=$(date +"%d") > > > [EMAIL PROTECTED] elvio]$ d=$(echo $d | sed 's/^0/ /') > > > [EMAIL PROTECTED] elvio]$ echo $d > > > 4 > > > [EMAIL PROTECTED] elvio]$ echo "$d" > > > 4 > > > > > > > > > - Mensagem original - > > > De: shell-script@yahoogrupos.com.br > > > [SMTP:shell-script@yahoogrupos.com.br] > > Em nome de h_marinox > > > Enviada em: terça-feira, 4 de setembro de 2007 14:21 > > > Para: shell-script@yahoogrupos.com.br > > > Assunto: Re: RES: [shell-script] substituir caracter > > > em valor da variavel. > > > > > > Elvio, > > > > > > Só tem um detalhe, eu preciso do espaço no lugar do zero > > > > > > a string original é "04" e deve ser " 4" > > > > > > Obrigado pela ajuda, > > > > > > Humberto Marino > > > > > > --- Em shell-script@yahoogrupos.com.br > > > <mailto:shell-script%40yahoogrupos.com.br> , Élvio Barbalho > > > escreveu > > > > > > > > Acho que resolve > > > > > > > > [EMAIL PROTECTED] elvio]$ d=$(date +"%d") > > > > [EMAIL PROTECTED] elvio]$ echo $d > > > > 04 > > > > [EMAIL PROTECTED] elvio]$ d=$(echo $d | sed 's/^0//') > > > > [EMAIL PROTECTED] elvio]$ echo $d > > > > 4 > > > > [EMAIL PROTECTED] elvio]$ d=$(echo $d | sed 's/^0/ /') > > > > [EMAIL PROTECTED] elvio]$ echo $d > > > > 4 > > > > [EMAIL PROTECTED] elvio]$ > > > > > > > > - Mensagem original - > > > > De: shell-script@yahoogrupos.com.br > > > <mailto:shell-script%40yahoogrupos.com.br> > > > > [SMTP: shell-script@yahoogrupos.com.br > > > <mailto:shell-script%40yahoogrupos.com.br> ] Em nome de h_marinox > > > > Enviada em: terça-feira, 4 de setembro de 2007 12:00 > > > > Para: shell-script@yahoogrupos.com.br > > > <mailto:shell-script%40yahoogrupos.com.br> > > > > Assunto: [shell-script] substituir caracter em valor > > > > da variavel. > > > > > > > > [moderacao]Teste assim : echo ${VAR#0} [/moderacao] > > > > > > > > Pessoal, > > > > > > > > Estou me aventurando em shell-script e estou me deparando com > > > > algumas dificuldades devido a falta de conhecimento técnico. > > > > > > > > O caso é que eu preciso de uma variável contendo o dia atual > > > > extraído do date +"%d". > > > > Ex: > > > > > > > > DIA=`date +"%d"` > > > > > > > > echo $DIA = 04 > > > > > > > > Eu preciso substituir o 0 do valor da variável por espaço " ". > > > > Porque o relatório gerado pelo Oracle adiciona espaço no lugar do > > > 0 > > > > e > > > > eu não consigo localizar a linha por conta disto. > > > > > > > > Alguém tem alguma dica para eu substituir o 0 pelo espaço? > > > > > > > > eu tentei o seguinte: > > > > > > > > DIA=${DIA/#0/" "} > > > > > > > > mas retorna o segunte erro: > > > > > > > > ksh: DIA=${DIA/#0/" "}: 0403-011 The specified substitution is not > > > > valid for this command. > > > > > > > > Obrigado a todos, > > > > > > > > Humberto Marino > > > > > > > > > > > > > > > > [As partes desta mensagem que não continham texto foram removidas] >