J'ai trouvé si je cherchais en utilisant grep sans spécifier de chemin, comme grep -r 'mytext'
cela prend infiniment de temps. Pendant ce temps, si je recherche avec le chemin spécifié, grep -r 'mytext' .
il trouve instantanément ce dont j'ai besoin. Donc, je suis curieux, en première forme, dans quel répertoire grep recherche-t-il?
UDATE: version grep: grep (GNU grep) 2.10
foomytextbar
(suivi de Entrée) après avoir exécutégrep -r 'mytext'
.grep
s'agit. Avec le GNUgrep
que j'utilise sous Linuxgrep -r 'mytext'
etgrep -r 'mytext' .
fait la même chose: recherche récursivement à partir du répertoire courant. Lorsque le-r
commutateur est utilisé, GNUgrep
ne recherche pas STDIN.grep
2.12: pastebin.com/L4my26QS En attendant, j'ai trouvé cela dans le fichier NEWS concernant la version 2.11 (2012-03-02): "Si aucun opérande de fichier n'est donné, et une ligne de commande -r ou une option équivalente est donnée , grep recherche maintenant dans le répertoire de travail. Auparavant, grep ignorait l'entrée -r et recherchait l'entrée standard de manière non récursive. Un -r trouvé dans GREP_OPTIONS n'a pas ce nouvel effet. "Réponses:
En fait, il ne recherche nulle part. Il attend l'entrée de l'entrée standard.
Essaye ça:
lorsque vous tapez une ligne contenant "foo" et appuyez sur Entrée, cette ligne sera répétée sinon le curseur sera déplacé vers une nouvelle ligne mais grep n'imprimera rien.
la source
grep -r PATTERN
avec une version plus récente de GNU, grep ne lira pas l'entrée standard mais recherchera le modèle dans le répertoire courant (voir le commit ). Cette modification est logique car vous ne souhaitez probablement pas rechercher une entrée standard lorsque vous spécifiez un-r
indicateur.Exactement comme le disait la réponse précédente de Maciek:
Cependant, vous pouvez écrire dans le stdin d'un programme déjà en cours d'exécution si vous avez / proc disponible en canalisant les données dans son 0e premier descripteur:
En un seul terminal
et le voir attendre indéfiniment ... Dans un autre terminal, tapez ceci:
voir le premier terminal imprimer bonjour et votre nom d'utilisateur.
la source