[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Alteração de campos individualmente.
From: |
Bruno Gunter |
Subject: |
Re: [shell-script] Alteração de campos individualmente. |
Date: |
Mon, 18 Jan 2010 15:14:09 -0200 |
Miko,
Se entendi direito, o que você quer é muito simples:
$ sed -i 's/\#/\*/g' ENTRADA
olhe:
[bgunter@gunter ~]$ cat a
#Teste# de #script#. Teste de #script2#. #Ultimo# teste de #script3#
[bgunter@gunter ~]$ sed -i 's/\#/\*/g' a
[bgunter@gunter ~]$ cat a
*Teste* de *script*. Teste de *script2*. *Ultimo* teste de *script3*
[bgunter@gunter ~]$
[]'s
Gunter
Em Seg, 2010-01-18 às 16:36 +0000, mikoazul escreveu:
>
>
> Pessoal,
>
> Tive que recorrer à lista pois meu caso está bem complicado (pelo
> menos pra mim). Já tentei alguns comandos sed e outros awk, mas não
> consigo resolver o impasse.
>
> Estou tentando transformar o arquivo "ENTRADA" nas várias saídas
> demonstradas abaixo.
>
> A idéia é ir pegando cada campo entre "#" e substituí-lo com * (por
> exemplo). O detalhe é que em cada linha tem-se um resultado diferente.
> Ou seja, ele vai tratando o próximo campo e automaticamente
> "destratando" o anterior. Ou seja a idéia é tratar um campo por vez.
>
> Se tiver alguém inspirado hoje e que puder me ajudar eu agradeço desde
> já.
>
> Vamos aos detalhes:
>
> Entrada:
> #Teste# de #script#. Teste de #script2#. #Ultimo# teste de #script3#.
>
> Saidas:
> * de script. Teste de script2. Ultimo teste de script3.
> Teste de *. Teste de script2. Ultimo teste de script3.
> Teste de script. Teste de *. Ultimo teste de script3.
> Teste de script. Teste de script2. * teste de script3.
> Teste de script. Teste de script2. Ultimo teste de *.
>
> Tentei com o sed e o máximo que consegui foi:
>
> cat ENTRADA | sed 's/^\(\([^#]*#\)\{1,2\}\)0*/*/'
>
> Saída:
> * de #script#. Teste de #script2#. #Ultimo# teste de #script3#.
>
> Grato desde já.
>
>
>
>
>
[As partes desta mensagem que não continham texto foram removidas]