Amigo Jeferson, a linha que sugerimos funciona bem com "Model=" se este estiver no início da linha, mas não se tiver no meio, como o campo "Serial=", veja:
$ linha="Model=Samsung 0411N, Serial=00000005464,blablabla=asdadqddq" $ echo $linha | sed -n 's/Model=\([^,]*\).*$/\1/p' Samsung 0411N $ echo $linha | sed -n 's/Serial=\([^,]*\).*$/\1/p' Model=Samsung 0411N, 00000005464 $ echo $linha | sed -n 's/^.*Serial=\([^,]*\).*$/\1/p' 00000005464 Então o comando a ser sugerido é este: echo $linha | sed -n 's/^.*Model=\([^,]*\).*$/\1/p' ou sed -n 's/^.*Model=\([^,]*\).*$/\1/p' Arquivo Abraço, Marcio Gil. > -----Original Message----- > From: Marcio Gil > > > -----Original Message----- > > From: Julio C. Neves > > > > 2009/12/1 Marcio Gil <[email protected]> > > > > > > $ linha="Model=Samsung 0411N, Serial=00000005464, > > > blablabla=asdadqddq" > > > $ echo $linha | sed 's/Model=\([^,]*\).*$/\1/' > > > Samsung 0411N > > > $ > > > > > > O "sed" acima substitui a linha pelo que está após "Model=" > > > e que não contenha ",". Cuidado apenas com as linhas que > > > não contem "Model=", pois neste caso o "sed" retornaria a > > > linha inteira. > > > > > Marcio, a sua sacada foi excelente, mas esta última limitação > > que vc colocou, pode ser contornada se fizermos: > > > > $ sed '/Model=/s/Model=\([^,]*\).*$/\1/' Arquivo > > > > Desculpe Julio, mas não funciona: > > $ linha="Model=Samsung 0411N, > Serial=00000005464,blablabla=asdadqddq" > $ echo $linha | sed '/Model=/s/Model=\([^,]*\).*$/\1/' > Samsung 0411N > $ echo linha | sed '/Model=/s/Model=\([^,]*\).*$/\1/' > linha > $ > > Imprimiu a linha inteira mesmo quando não havia "Model=". > > No entanto funciona desta maneira: > > $ echo $linha | sed -n '/Model=/s/Model=\([^,]*\).*$/\1/p' > Samsung 0411N > $ echo linha | sed -n '/Model=/s/Model=\([^,]*\).*$/\1/p' > $ > > Mas desta forma nem precisa repetir o padrão: > > $ echo $linha | sed -n 's/Model=\([^,]*\).*$/\1/p' > Samsung 0411N > $ echo linha | sed -n 's/Model=\([^,]*\).*$/\1/p' > $ > > O "-n" suprime a impressão automatica, então o comando "p" > imprime apenas se houver "Model=". > > Abraço. > > Marcio Gil. >
