¿Puede alguien explicarme por qué no obtengo la ruta completa en el ejemplo 1?
ejemplo 1 - devolver la línea encontrada
grep MODIFY /opt/releases/packages/cr_c_cr6/sas/dbms/*/*;
outcome: MODIFY
ejemplo 2 - regresar ruta completa
grep MODIFY /opt/releases/packages/cr666/sas/dbms/*/*;
/opt/releases/packages/cr666/sas/dbms/sti/FA_DISCLOSURE.ddl:MODIFY QUANTITY NUMBER;
He encontrado una solución, pero quiero entender lo que está sucediendo aquí. 1 comando, diferente resultado / manejo.
Respuestas:
En su primer ejemplo, el globo debe haberse expandido a un solo archivo. En ese caso,
grep
no (por defecto) antepone el nombre del archivo.El segundo ejemplo debe haberse expandido a varios nombres de archivo, y
grep
antepone el nombre de archivo en ese caso.Puede usar la
-H
opción para obtener siempre el nombre del archivo antepuesto a la salida, o-h
para nunca obtenerlo.Si su grep carece de estas opciones, puede usarlo
grep REGEX /path/to/pattern/* /dev/null
para obtener siempre el nombre del archivo (nunca se ingresa/dev/null
pero se cuenta como un nombre de archivo), ocat /path/to/pattern/* | grep REGEX
para nunca obtener un nombre de archivo.fuente