shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Re: Como sinalizo que um parametor, lido pela entrada


From: Arthur Renato Mello
Subject: Re: [shell-script] Re: Como sinalizo que um parametor, lido pela entrada padrão, terminou?
Date: Tue, 18 Dec 2007 00:04:09 -0200

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 <address@hidden> 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?
>
>  


reply via email to

[Prev in Thread] Current Thread [Next in Thread]