8

またはオプションを使用せずに、ファイル名が a で始まるファイル.(.htaccess など)を検索するための ack を取得する方法はありますか?--all--unrestricted

~/.ackrcファイルに次を追加しようとしましたが、役に立ちませんでした。

--type-set=apache=.htaccess
4

3 に答える 3

5

ack は、すべてが拡張子のファイル名を認識しないようです。つまり、「.htaccess」の拡張子を指定すると、ack はその拡張子の前に少なくとも 1 文字あるファイルのみを検索します。

これを回避するに-u/--unrestrictedは、フラグと組み合わせて使用​​できます-G regex(名前が正規表現に一致するファイルに検索を制限するため)。例えば:

$ ack -u -G '\.htaccess' pattern
于 2011-01-24T03:43:21.903 に答える
1

Ack 2に対する@Seanの回答を更新

@Seanが使用した2つのフラグを削除したため

ack 2 のリリース ノートには次のように書かれています。

-G オプションは削除されました。コマンド ラインの 2 つのパターンがあいまいでした。このコマンドラインでは:

ack1 -G filepattern -i -w searchpattern

-i と -w はどのパターンを変更しますか? ack 2.0 では、新しい -x を使用して、ファイル名を ack の 1 つの呼び出しから別の呼び出しにパイプすることができます。

ack2 -g -i filepattern | ack2 -x -w searchpattern

-u (無制限) フラグは不要になりました。だからあなたが欲しいのは:

ack -g "\.htaccess" | ack -x pattern

または、findを使用してファイル リストを生成します (特に、ドット フォルダー内のファイルを検索する場合に便利です)。

find **/.hidden/complex-path/* | ack -x pattern
于 2016-02-01T06:18:55.677 に答える
0

ack 1.x ではできません。ack 2.0 では、ファイルを指定する方法がより柔軟になります。

于 2011-01-24T15:10:56.070 に答える