Estoy tratando de usar ack-is-better-than-grep (ack) con expresiones regulares para buscar líneas y fragmentos en mi repositorio de código. Tengo entendido que ack usa Perl-derivative regular expressions, ¿es correcto?Ack with regex - Confusión con consultas simples
Sin embargo, no estoy seguro de cómo serían estas consultas trabajar:
ack 'foo'
ack '.*(foo)+.*'
ack '.*foo'
ack 'foo.*'
Podrían dar diferentes salidas? Si es así, ¿por qué?
EDIT: En mis pruebas arrojan resultados diferentes (el primero produce más coincidencias que los otros, por ejemplo). También resaltan diferentes partes de las mismas líneas.
EDIT 2: La diferencia en la salida aparentemente está relacionada con el resaltado (la coloración de la salida). Me he dado cuenta de que si ejecuto ack
con --nocolor
, la salida de los comandos anteriores es la misma. Al parecer, ejecutar ack
con el color predeterminado hace que parte de la salida sea invisible en mi máquina/configuración. Lo estoy ejecutando en una terminal de GNOME desde bash en Ubuntu 11.04.
* ¿* estas consultas dan salidas diferentes? Si es así, ¿puedes dar un ejemplo? De lo contrario, ¿cuál es la razón para sospechar que lo hacen? –
¿A qué te refieres con el primero que produce más coincidencias? ¿Qué líneas se corresponden con 1 pero no coinciden con las demás? – NorthGuard
Gracias @Konrad y @inTide, he actualizado la pregunta para abordar sus comentarios. –