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 grep
abaixo do ideal, então você encontrará algumas grep
alternativas que não apresentam esse problema. Por exemplo oPesquisador de Prataatende pelo nome ag
e, por padrão, pesquisa o diretório atual recursivamente, portanto, seu palpite sobre a sintaxe correta estaria correto para ag
:
ag hello
ag
també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 é grep
o padrão.
Problemas de usabilidade grep
como esse são o motivo pelo qual você deve usar uma alternativa mais recente quando puder e somente grep
quando for necessário. grep
ainda é ú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 grep
comando 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".