Me ajudem com a seguinte expressão regular

1. Me ajudem com a seguinte expressão regular

Guepardo F. Weles
guelweles

(usa Ubuntu)

Enviado em 05/04/2012 - 06:12h

Bom dia galera, gostaria de pedir ajuda dos senhores no seguinte caso:

tenho um arquivo (novo.txt) com a seguinte estrutura.


guel <tab> NP/NP/NP <tab> sim
joao <tab> NP/NP/NP <tab> sim
pedro <tab> NP/NP/NP <tab> sim
maria <tab> NP/NP/NP <tab> nao

Quero fazer com o que o comando sed junto a uma expressão regular case com "guel", "NP" e "sim", quando casar quero que ele altere o "NP" para por exemplo "ST".

O máximo que consegui chegar foi aqui

sed -r '/^guel/,/([ \t])/s/NP[ /]NP[ /]NP/ST-ST-ST/' novo.txt

Porém ele me imprime o seguinte

guel ST-ST-ST sim
joao ST-ST-ST sim
pedro NP/NP/NP sim
maria NP/NP/NP nao

ele sempre altera a primeira linha que ele casou mais a segunda também, por exemplo se eu alterar na minha expressão guel por joao ele imprime o seguinte.

guel NP/NP/NP sim
joao ST-ST-ST sim
pedro ST-ST-ST sim
maria NP/NP/NP nao

E ainda está faltando encaixar a palavra "sim" na expressão


Preciso da expressão que case com "guel", "NP/NP/NP" e com "sim", e depois disse altere os "NP" por "ST" por exemplo, espero ter sido claro e espero que alguém consiga me ajuda.

abraços.



  


2. Re: Me ajudem com a seguinte expressão regular

Perfil removido
removido

(usa Nenhuma)

Enviado em 05/04/2012 - 19:32h


#!/bin/bash
# author Paulo Riceli Dias Lelis
# more http://www.sekysu.blogspot.com.br
_LOGIN='guel'
_STT_ORI='sim'
_STT_MOD='nao'
_NP='NP\/NP\/NP'
_SP='SP\/SP\/SP'
cat entry.txt |
sed "s/${_LOGIN}\t${_NP}\t${_STT_ORI}/${_LOGIN}\t${_SP}\t${_STT_MOD}/g"
echo -e "\n\n"







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts