amigos, evitem utilizarem "|" pipe, o exemplo abaixo poderia ter resolvido assim: grep "linha 2" < texto.txt
o shell trabalha melhor assim. Alan Diones Em Ter, 2007-12-18 às 00:04 -0200, Arthur Renato Mello escreveu: > Andre, > > "se [caminho do texto o qual será pesquisado] não for especificado, > lê da entrada padrão", nao quer dizer que o grep espera o caminho do > arquivo na entrada padrao, mas sim o texto propriamente dito. > > No exemplo: > > $ cat texto.txt > linha 1 > linha 2 > linha 3 > > Se passarmos o caminho do arquivo no grep: > > $ grep "linha 2" texto.txt > linha 2 > > Caso eu nao passe o caminho do arquivo, o grep ficara esperando que eu > insira o texto na entrada padrao. Para encerrar a entrada eu uso > Ctrl-D: > > $ grep "linha 2" > texto.txt > *Ctrl-D* (Nao o texto mas sim as teclas Ctrl + D :) > > Porem nesse caso o grep nao encontra nada, pois em "texto.txt" nao > existe o padrao "linha 2". > > Mas nesse caso: > > grep "linha 2" > linha 1 > linha 2 > linha 2 > linha 3 > *Ctrl-D* > > Eu digitei "linha 1" o que nao casa com o padrao, o grep nao faz nada. > Porem, quando eu digito "linha 2", que casa com o padrao, e teclo > Enter o grep automaticamente repete a linha. > > O uso do grep com textos da entrada padrao eh muito util para > redirecionamentos. > Como nesse caso INUTIL mas que exemplifica bem :) > > $ cat texto.txt | grep "linha 2" > linha 2 > > Espero ter sido claro. E se cometi algum erro o pessoal da lista > podera corrigir :D > > []s > Arthur > > On Dec 17, 2007 10:35 PM, andre.andrade1 <[EMAIL PROTECTED]> > wrote: > > > > > > > > > > > > > > Me desculpem, pessoal, eu fui pouco claro. > > A minha duvida, na realidade, refere-se a um comentário do livro do > > julio neves(programação shell linux), 6 edição, pagina 24. > > Ele fala mais ou menos isso: > > A sintaxe do comando grep é: grep [-opçoes] [texto a ser procurado] > > [caminho do texto o qual sera pesquisado] > > e, está escrito mais ou menos isso: "se [caminho do texto o qual > será > > pesquisado] não for especificado, lê da entrada padrão". > > Pelo que entendi, se eu der um "$grep -i palavra" e não especificar > o > > arquivo alvo do grep, o shell espera que eu coloque o caminho do > > arquivo na stdin. Ao colocar o endereço do arquivo na stdin, como eu > > sinalizo ao shell que eu já terminei de colocar o caminho para que o > > grep seja executado? > > > > > > > >