
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.