正規表現でack-is-better-than-grep(ack)を使用して、コードリポジトリ内の行とスニペットを検索しようとしています。私の理解では、ackはPerl派生の正規表現を使用していますが、それは正しいですか?
ただし、これらのクエリがどのように機能するかはわかりません。
ack 'foo'
ack '.*(foo)+.*'
ack '.*foo'
ack 'foo.*'
彼らは異なる出力を与えることができますか?もしそうなら、なぜですか?
編集:私のテストでは、それらは異なる結果を出力します(たとえば、最初のテストは他のテストよりも多くの一致を出力します)。また、同じ行のさまざまな部分を強調表示します。
編集2:出力の違いは明らかにハイライト(出力の色)に関連しています。上記のコマンドの出力で実行ack
した場合、同じであることに気づきました。--nocolor
どうやらack
デフォルトの色で実行すると、出力の一部が私のマシン/構成で見えなくなります。Ubuntu11.04のbashからGNOMEターミナルで実行しています。