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

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

Re: [shell-script] retirar apenas a ultima ocorrencia


From: Tiago Barcellos Peczenyj
Subject: Re: [shell-script] retirar apenas a ultima ocorrencia
Date: Wed, 30 Jan 2008 19:31:16 -0200

Vc poderia fazer algo como

(trocar a ultima virgula da linha por : )
$ echo "a,b,c,d" | sed -r 's/,([^,]+$)/:\1/'
a,b,c:d

$ echo "a,b,c,d" | rev | sed 's/,/:/' | rev
a,b,c:d

Se a sua instrução possui muitas linhas tem q fazer umas bruxarias --
mas vc pode transformar as quebras de linha em outro caracter
temporario :)

2008/1/30 Elvio Barbalho <address@hidden>:
>
>
>
>
>
>
> Senhores bom tarde, em uma varivel tenho a seguinte informacao
>
>  a="update BRT_SCQF_EXECUCAO set DS_JOB = 'ope_bg_prorrata',ID_PROCESSO_UNIX
>  = '22658',CO_PROCESSO = 704,DT_INICIO = sysdate,DT_FINAL =
>  sysdate,QT_CLIENTE_OK = NULL,QT_CLIENTE_NOK = NULL,QT_ACCOUNT_OK =
>  NULL,QT_ACCOUNT_NOK = NULL,QT_EVENTO_OK = NULL,QT_EVENTO_NOK =
>  NULL,QT_CONTRATO_OK = NULL,QT_CONTRATO_NOK = NULL,QT_ARQUIVO_OK =
>  NULL,QT_ARQUIVO_NOK = NULL,ATTR_1 = NULL,ATTR_2 = NULL,ATTR_3 = NULL,ATTR_4
>  = NULL,CO_STATUS = 4,DS_INI_EXECUCAO = NULL,DS_FIM_EXECUCAO =
>  NULL,DS_REFERENCIA = 200802,DS_CICLO = 003,where CO_EXECUCAO = 2"
>
>  como podemos observar antes do comando where tem uma virgula. esta variavel
>  e carregada dinamicamente e sempre esta sendo inserido a virgula antes do
>  where, ja vi aki na lista instrucoes com o sed para retirar apenas uma
>  determinada ocorrencia. O que estou precisando e algo que subistituisse a
>  ultima ocorrencia da virgula por um espaco em branco que me retornasse algo
>  do tipo
>
>  update BRT_SCQF_EXECUCAO set DS_JOB = 'ope_bg_prorrata',ID_PROCESSO_UNIX =
>  '22658',CO_PROCESSO = 704,DT_INICIO = sysdate,DT_FINAL =
>  sysdate,QT_CLIENTE_OK = NULL,QT_CLIENTE_NOK = NULL,QT_ACCOUNT_OK =
>  NULL,QT_ACCOUNT_NOK = NULL,QT_EVENTO_OK = NULL,QT_EVENTO_NOK =
>  NULL,QT_CONTRATO_OK = NULL,QT_CONTRATO_NOK = NULL,QT_ARQUIVO_OK =
>  NULL,QT_ARQUIVO_NOK = NULL,ATTR_1 = NULL,ATTR_2 = NULL,ATTR_3 = NULL,ATTR_4
>  = NULL,CO_STATUS = 4,DS_INI_EXECUCAO = NULL,DS_FIM_EXECUCAO =
>  NULL,DS_REFERENCIA = 200802,DS_CICLO = 003 where CO_EXECUCAO = 2
>
>  [As partes desta mensagem que não continham texto foram removidas]
>
>  



-- 
Tiago B Peczenyj
Linux User #405772

http://peczenyj.blogspot.com/
"what does not kill us makes us stronger"


reply via email to

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