Я пытаюсь использовать ack-is-better-than-grep (ack) с регулярными выражениями для поиска строк и фрагментов в моем репозитории кода. Насколько я понимаю, ack использует регулярные выражения, производные от Perl , это правильно?
Однако я не уверен, как будут работать эти запросы:
ack 'foo'
ack '.*(foo)+.*'
ack '.*foo'
ack 'foo.*'
Могут ли они давать разные результаты? Если да, то почему?
РЕДАКТИРОВАТЬ: В моих тестах они выдают разные результаты (например, первый выводит больше совпадений, чем другие). Они также выделяют разные части одних и тех же строк.
РЕДАКТИРОВАТЬ 2: Разница в выводе, по-видимому, связана с выделением (окраской вывода). Я заметил, что если я запустил ack
с - nocolor
, результаты вышеперечисленных команд будут такими же. Очевидно, запуск ack
с цветом по умолчанию делает часть вывода невидимой на моем компьютере / config. Я запускаю его на терминале GNOME из bash в Ubuntu 11.04.