Descobri que se procurasse usando grep sem especificar um caminho, como grep -r 'mytext'
se demorasse infinitamente. Enquanto isso, se eu procurar com o caminho especificado, grep -r 'mytext' .
ele encontra instantaneamente o que eu preciso. Então, estou curioso, em primeira forma, em qual diretório o grep pesquisa?
UDATE: versão grep: grep (GNU grep) 2.10
foomytextbar
(seguido de Enter) depois de executargrep -r 'mytext'
.grep
é isso. Com o GNUgrep
, uso no Linuxgrep -r 'mytext'
egrep -r 'mytext' .
faz o mesmo: pesquise recursivamente a partir do diretório atual. Quando o-r
switch é usado, o GNUgrep
não procura STDIN.grep
2.12: pastebin.com/L4my26QS Enquanto isso, encontrei isso no arquivo NEWS referente à versão 2.11 (02-03-2012): "Se nenhum operando de arquivo for fornecido, e uma opção de linha de comando -r ou equivalente for fornecida , o grep agora pesquisa no diretório de trabalho. Anteriormente, o grep ignorava o -r e pesquisava a entrada padrão de forma não recursiva. Um -r encontrado em GREP_OPTIONS não tem esse novo efeito. "Respostas:
Na verdade, ele não pesquisa em lugar nenhum. Aguarda a entrada da entrada padrão.
Tente o seguinte:
quando você digita a linha contendo "foo" e pressiona enter, esta linha será repetida; caso contrário, o cursor será movido para a nova linha, mas o grep não imprimirá nada.
fonte
grep -r PATTERN
com a versão mais recente do GNU, o grep não lerá a entrada padrão, mas procurará o padrão no diretório atual (consulte o commit ). Essa alteração faz sentido, pois você provavelmente não deseja pesquisar a entrada padrão ao especificar o-r
sinalizador.Exatamente como a resposta anterior de Maciek diz:
No entanto, você pode gravar no stdin de um programa já em execução, se você tiver / proc disponível, canalizando dados para o 0º primeiro descritor:
Em um terminal
e veja-o esperar indefinidamente ... Em outro terminal, digite este:
veja o primeiro terminal imprima olá e seu nome de usuário.
fonte