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

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

Re: [shell-script] Re: substituir string - endereçada por linha/coluna


From: Ricardo Acosta
Subject: Re: [shell-script] Re: substituir string - endereçada por linha/coluna
Date: Tue, 2 May 2006 13:25:58 -0300

Reinaldo,
a solução apresentada por vc realmente funciona!
No entanto, para os propositos do script deixa-o amarrrado a somente uma
solução.

>veja se isso resolve
>sed 's/\(.*\) 0\.9\([0-9]\) \(.*\)/\1 0.5\2 \3/'

gostaria de fazer algo para funcionar com qualquer Parametro,
em que eu pudesse somente falar o nome do Parametro de referencia,
e apartir disso o script alterar  o valor no lugar certo.

em PVT o Tiago Peczenyj sugeriu uma soluçao, em AWK, que estou testando,
mas ele avisa que perde a formatação. Vejam:

> basicamente eu procuro o campo e, uma vez encontrado, eu guardo o
> campo e o numero da linha. na linha seguinte eu substituo o campo pelo
> valor escolhido.

$ awk -v param='vcover' -v valor=30 'BEGIN{campo=-1; linha=-1;}
{ if(NR==linha){
   $campo = valor
 }
 print $0
 split($0,campos)
 for(i in campos)
    if (param==campos[i]){
       campo=i; linha=NR+1
    }
}' arquivo.txt

Poxa, longe de mim ter feito passar por uma crítica o comentário de "lista
meio parada".
Talvez tenha me expressado mal!
> um grupo onde fazem parte o Thobias e o Aurelio nunca é parado.


valeu!
acosta



 --- Em address@hidden, "Ricardo Acosta"
> <ricardo.acosta@g...> escreveu
>
> >
> > Enviei esta mensagem pra lista de expressoes regulares e sed,
> > mas a coisa estah um pouco parada por lah!
> > jah que a solução nao depende somente disso(sed e ER),
> > talvez alguem por aqui possa contribuir.
> > valeu
> > acosta
> > ....................
> > Camaradas,
> > gostaria de fazer um script para alterar o valor
> > de um parametro em um arquivo texto(mostrado abaixo).
> >
> > analisando o arquivo do exemplo abaixo, gostaria de executar a
> > seguinte alteração: parametro: vcover(linha 3, campo 3)
> > valor do parametro: de 0.90 para 0.50 (linha 4, campo 3)
> >
> > teria como eu vincular o comando de substituição do SED não somente a
> > linha do Parametro, mas também a posição do CAMPO?
> >
> > para imprimir a linha logo a seguir ao Parametro seria:
> > sed -n '/Parametro/{n;p;}' - retirado do Só Sed - Thobias
> >
> > mas como substituir o Campo correto? no caso o terceiro (0.90)
> > rola com SED?
> >
> > 1 - as linhas que iniciam com @ são linha de comentários
> > 2 - as linhas com texto mostram o nome do parametro e indicam a
> > posição do seu valor na linha logo abaixo
> > 3 - a linha com os valores/números estão abaixo da linha com o nome.
> > .............................................
> > @   offline veg parameters for Forest
> > @.. VEGN. TYPE-DEPENDENT STATIC PARAMETERS
> >    z2   z1  vcover  chil
> >  16.0   0.5   0.90  0.25
> >  rootd   phc
> >   1.5   -200.0
> >  effcon  gradm  binter  respcp  atheta  btheta
> >  0.08     9.000   0.01     0.015   0.98   0.95
> >  acoef  bcoef  ccoef   *(unplugged in 11/12/95)
> >  0.000  0.000  0.000
> > @.. SOIL TYPE, SOIL DEPTH, SOIL REFLECTANCES(VIS,NIR)
> >     iinf    slope
> >      2       0.01
> > @.. DERIVED OR SECONDARY PARAMETERS
> >  vmax0      gmudmu  green     zlt
> >  0.0000750   0.9    0.95      4.0
> >   z0d    dd     cc1      cc2
> >  0.8000  8.6226  7.88   345.90
> > .............................................
> >
> > []s
> > acosta
> >
> > --
> > __________________________
> > Ricardo Acosta
> > Laboratório de Clima e Biosfera
> > Departamento de Ciências Atmosféricas - USP/IAG/ACA
> >
>
>
>
>
>
>
>
>  ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de programação, como
> perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
> aviso.
> ---------------------------------------------------------------------
> Sair da lista: address@hidden
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em
> http://www.listas-discussao.cjb.net
> ---------------------------------------------------------------------
> Servidor Newsgroup da lista: news.gmane.org
> Grupo: gmane.org.user-groups.programming.shell.brazil
>
>
>
>
>  *Yahoo! Grupos, um serviço oferecido por:*  PUBLICIDADE
>
> <http://br.ard.yahoo.com/SIG=12fgha8vg/M=399886.8024024.9299154.2369893/D=brclubs/S=2137111254:HM/Y=BR/EXP=1146587909/A=3594535/R=2/id=noscript/SIG=154ukt5c8/*http://lt.dell.com/lt/lt.aspx?CID=12257&LID=332199&DGC=BA&DGSeg=DHS&DURL=http://www1.la.dell.com/content/products/category.aspx/desktops?c%3dbr%26l%3dpt%26s%3ddhs>
> ------------------------------
> *Links do Yahoo! Grupos*
>
>    - Para visitar o site do seu grupo na web, acesse:
>    http://br.groups.yahoo.com/group/shell-script/
>
>    - Para sair deste grupo, envie um e-mail para:
>    address@hidden
>    <address@hidden?subject=Unsubscribe>
>
>    - O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
>    Serviço do Yahoo! <http://br.yahoo.com/info/utos.html>.
>
>


--
__________________________
Ricardo Acosta
Laboratório de Clima e Biosfera
Departamento de Ciências Atmosféricas - USP/IAG/ACA


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

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