12

を含むandpatternsで複数検索したい。directoryrecursive directoriesfiles

次のようなコマンドを知ってgrepいます

grep -e '(pattern1)|(pattern2)'

また

grep -r -E  'string1|string2|string3' /var/www/http

ackまたはを使用してそのためのコマンドは何agですか?

4

4 に答える 4

19

これで十分です:

ack -R 'string1|string2'

デフォルトのよう-Rに、省略できます。

ack 'string1|string2'

からman ack:

-r-R、 --recurse

サブディレクトリに再帰します。これはデフォルトであり、grep との互換性のためにここにあるだけです。--no-recurse をオフにするためにも使用できます。


/path/to/patterns.file などのファイルからパターンを取得する場合は、次を使用できます。

ack "$(cat /path/to/patterns.file)"

または同等に:

ack "$(< /path/to/patterns.file)"

に完全に相当するものが見つかりませんgrep -f

于 2014-10-09T10:10:46.650 に答える
1

の場合ag、verion 0.19.2 の時点で、デフォルトはディレクトリとファイルを再帰的に検索することです。

複数のパターンを検索するには、同様の構文を次のように使用できます。ack

ag 'pattern1|pattern2'

pattern1と の両方を検索しpattern2ます。

再帰的に検索したくない場合は、スイッチで検索の深さを 1 に設定できます。--depth NUM

したがって、

ag 'pattern1|pattern2' --depth 1

両方のパターンについて、現在のディレクトリでのみ検索します。

于 2015-06-17T18:00:53.013 に答える