grep congela

grep congela

Estou tendo problemas para usar o grep, tenho o ubuntu 18.04 instalado no Win 10. Ele congela para os comandos mais simples, posso cancelá-lo e ele cria um novo arquivo se eu quiser, mas não grava nada em isto.

$ mkdir test
$ cd test
$ ls
$ sudo grep "Werk!" > new
^C
$ ls
new
$ cat new

Estou perdendo algo óbvio?

Responder1

Sim. Você está usando STDIN, então ele fica para sempre esperando por uma entrada que nunca chega.

Você provavelmente pretendia incluir "." como argumento para grep e -r (recursivo), para grep o diretório atual.

grep -r hello .

Outras pessoas também consideram o comportamento padrão grepabaixo do ideal, então você encontrará algumas grepalternativas que não apresentam esse problema. Por exemplo oPesquisador de Prataatende pelo nome age, por padrão, pesquisa o diretório atual recursivamente, portanto, seu palpite sobre a sintaxe correta estaria correto para ag:

ag hello

agtambém o padrão é uma pesquisa que não diferencia maiúsculas de minúsculas, a menos que você inclua uma letra maiúscula, o que provavelmente também é o que você deseja. O padrão também é usar cores e usar o mecanismo regex PCRE mais poderoso (como Perl) em vez da correspondência de estilo glob mais fraca e antiga que é grepo padrão.

Problemas de usabilidade grepcomo esse são o motivo pelo qual você deve usar uma alternativa mais recente quando puder e somente grepquando for necessário. grepainda é útil conhecer uma ferramenta padrão para scripts de shell que você pode compartilhar e como um utilitário padrão em qualquer máquina Linux em que você fizer login.

"ripgrep" e "ack" são outras boas alternativas ao grep.

Responder2

Você perdeu o segundo argumento do grepcomando que especifica o arquivo no qual você está pesquisando o padrão.

Por favor seguehomem 1 greppara obter ajuda sobre grep.

Responder3

Talvez você queira gravar textos no arquivo "novo", isso pode ser feito usando "echo texts > new".

informação relacionada