Encontré si busco usando grep sin especificar una ruta, como grep -r 'mytext'
si tomara infinitamente largo. Mientras tanto, si busco con la ruta especificada grep -r 'mytext' .
, instantáneamente encuentra lo que necesito. Entonces, tengo curiosidad, en primera forma, ¿en qué directorio busca grep?
UDATE: versión grep: grep (GNU grep) 2.10
foomytextbar
(seguido de Enter) después de ejecutargrep -r 'mytext'
.grep
es eso. Con el GNUgrep
que uso en Linuxgrep -r 'mytext'
y hagogrep -r 'mytext' .
lo mismo: busca de forma recursiva comenzando desde el directorio actual. Cuando-r
se usa el interruptor, GNUgrep
no busca STDIN.grep
2.12: pastebin.com/L4my26QS Mientras tanto, encontré esto en el archivo NEWS con respecto a la versión 2.11 (02/03/2012): "Si no se proporciona ningún operando de archivo, y se proporciona una línea de comando -r o una opción equivalente , grep ahora busca en el directorio de trabajo. Anteriormente, grep ignoraba el -r y buscaba la entrada estándar de forma no recurrente. Un -r encontrado en GREP_OPTIONS no tiene este nuevo efecto ".Respuestas:
En realidad no busca en ningún lado. Espera entrada de entrada estándar.
Prueba esto:
cuando escribe una línea que contiene "foo" y presiona enter, esta línea se repetirá; de lo contrario, el cursor se moverá a una nueva línea, pero grep no imprimirá nada.
fuente
grep -r PATTERN
con la versión más nueva de GNU grep no leerá la entrada estándar sino que buscará el patrón en el directorio actual (vea el commit ). Este cambio tiene sentido ya que probablemente no desee buscar entradas estándar cuando especifique el-r
indicador.Exactamente como dice la respuesta anterior de Maciek:
Sin embargo, puede escribir en el stdin de un programa que ya se está ejecutando si tiene / proc disponible ingresando datos en su primer descriptor:
En una carrera de terminal
y verlo esperar indefinidamente ... En otro terminal escriba esto:
vea el primer terminal imprima hola y su nombre de usuario.
fuente