またはオプションを使用せずに、ファイル名が a で始まるファイル.(.htaccess など)を検索するための ack を取得する方法はありますか?--all--unrestricted
~/.ackrcファイルに次を追加しようとしましたが、役に立ちませんでした。
--type-set=apache=.htaccess
ack は、すべてが拡張子のファイル名を認識しないようです。つまり、「.htaccess」の拡張子を指定すると、ack はその拡張子の前に少なくとも 1 文字あるファイルのみを検索します。
これを回避するに-u/--unrestrictedは、フラグと組み合わせて使用できます-G regex(名前が正規表現に一致するファイルに検索を制限するため)。例えば:
$ ack -u -G '\.htaccess' pattern
@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
ack 1.x ではできません。ack 2.0 では、ファイルを指定する方法がより柔軟になります。