¿Hay alguna forma de decir ackque solo busque texto en la carpeta actual? (¿o especificar un max-depthnivel?) ¿Y con grep?
¿Hay alguna forma de decir ackque solo busque texto en la carpeta actual? (¿o especificar un max-depthnivel?) ¿Y con grep?
Respuestas:
Usar -npara no-recurse:
$ ack -n foo
grepno es recursivo de forma predeterminada, y debe usar el -rindicador solo si desea una búsqueda recursiva.
Puede buscar en el directorio actual de la grepsiguiente manera:
$ grep -- foo *
Puede emparejar find con el argumento -exec. ejemplo:
find . -maxdepth 1 -exec grep foo {} \;
Esto se puede escalar, es decir -maxdepth 2
-maxdepth 1) fue escalable. Por ejemplo -maxdepth 2. No sé cómo describir la edición que hiciste como tal.
-maxdepth) no es una sintaxis portátil / estándar (solo GNU y algunos BSD). Además, no tiene sentido usar \;aquí (ejecute uno greppor archivo). Utilice grep -H foo {} +(específico de GNU) o grep foo /dev/null {} +(estándar) para asegurarse de que el nombre del archivo siempre se imprima. El equivalente estándar a -maxdepth 2seríafind . -path './*/*' -type d -prune -o -type f -exec ...
.cuando no le da el -mindepth 1), mientras que GNU grepno intentará leer los directorios con -r(se repite en ellos). Es posible que desee añadir un -d skipa grep(suponiendo grep de GNU) o mejor añadir ! -type da findo incluso mejor -type f(o -xtype fasumiendo GNU find) que es probable que no quiere grepleer archivos que no son regulares.
grep -Hineste enfoque para poder ver el nombre de archivo y la línea en la que está ocurriendo.
-nno recurrir en absoluto.