sistemas - ¿Cómo excluir un archivo específico de ack(ack-grep)?
ack tcp (5)
No, ack 1.x no le permitirá excluir un solo archivo. En ack 2.0 , puedes. ack 2.0 se encontraba actualmente en su primera versión alfa y ahora es la versión actual recomendada de ack.
En cuanto a su caso específico del archivo minified Javascript, ¿qué versión de ack está usando? ack 1.96 debe ignorar el JavaScript minificado basado en la extensión. Si la verificación de la extensión no funciona, probablemente podría hackear ACK, ya que es un programa único de Perl. Puedes hackear la función is_searchable
.
En ack 2.0, estamos mirando ignorar cualquier línea sobre, por ejemplo, 500 caracteres porque claramente no es un código fuente.
También puede unirse a nosotros en la lista de correo de ack-users . Somos muy receptivos
Con el comando grep
normal hay una opción --exclude
(tratada en detalle aquí: use grep --exclude / - incluya sintaxis para no grep a través de ciertos archivos ) que le permite ignorar archivos específicos cuando está grepping.
La opción de --type
de Ack se encarga del 95% de los casos en los que querría excluir archivos, pero no (en la medida de lo que puedo decir) maneja el caso de excluir un archivo específico. Tengo un archivo JS compilado que contiene el contenido de todos los demás archivos JS (en una sola línea), por lo que cada vez que hago grep para cualquier cosa , recupero todo el contenido de ese archivo compilado gigante.
Odiaría tener que renunciar a ack y volver a grep sobre esto, pero es realmente molesto. Por favor, alguien me dice que hay una manera de excluir archivos específicos de las búsquedas de ack.
Para ignorar un solo archivo usando ack 2.0, proporcione una especificación de filtro a la marca --ignore-file:
--ignore-file=is:cljout.js
Si desea excluir una carpeta específica, el siguiente comando puede ayudarlo:
ack keywords --ignore-dir folder_name
man ack
proporcionará más detalles :)
- [no] ignore-dir = DIRNAME, - [no] ignore-directory = DIRNAME
--ignore-file = FILTERTYPE: FILTERARGS
Si ejecuta ack --create-ackrc
, generará una gran cantidad de ajustes preestablecidos para archivos comunes como javascript minified, css y directorios como node_modules y .git. ¡Muy útil!
Aquí está la opción js minified:
# minified Javascript
--ignore-file=match:/[.-]min[.]js$/
--ignore-file=match:/[.]js[.]min$
Si quieres guardar esto en .ackrc
run
ack --create-ackrc >> ~/.ackrc
y luego elimine lo que no necesita de ese archivo.
También es bueno saberlo con ack2.0, puede especificar estas opciones en un archivo .ackrc
si tiene que filtrar archivos con frecuencia.