2017-04-05 9 views
1

のは、私はディレクトリ内の2つのファイルがあるとしましょう:agを使用して特定の文字で始まるファイルのみを検索するにはどうすればよいですか?

.test 
test.txt 

どのように私は.で始まるファイルだけに私のag検索を制限することができますか?

私はいくつかのパターンを試しましたが、どれもうまくいきませんでした。

+0

私はzshの拡張を使ってこれを行う方法を見つけましたが、カレントディレクトリ( '' *。* 'は' .test'に解決します)でカレントディレクトリにファイルをリストするだけで動作します。これは私の現在のニーズには問題ありませんでしたが、堅牢なソリューションとして満足できるものではありませんでした。 – astephenb

答えて

1

どのようにして、agの検索を。で始まるファイルのみに制限できますか?このよう

:あなたの例では

ag -u -G ^\..*$ PATTERN 

、ファイル.testが隠されているので、オプション-uに便利です。このオプションはおそらくあなたの検索で逃したものです。 (任意の文字

  • ^を意味します:は文字列
  • \.の始まりは意味:はドット文字
  • .*は意味

    私は正規表現^\..*$を説明しましょう.任意の回数*

  • $は任意であり、それは

ノートに一致するように、文字列の末尾をマーク:私は検索が、名前が、それは、この正規表現のためにあるべきな.で始まるファイルに限定されないが、見るので、私は、AGのためbug trackerを開きました。


より一般的には、名前正規表現に一致するファイル内のパターンを検索するために、一つは使用することができます。

ag -G REGEX PATTERN 

ag --file-search-regex REGEX PATTERNと同じ)

はAGの詳細については、マニュアルを確認してください。

+0

ああ、これは現在agのバグです!私は運がなければそのパターンの多くのバリエーションを試していた。私が従うことができるように問題にリンクするためのケア? – astephenb

+0

私は私の答えを編集しました。 – Bludzee

+0

私はバグトラッカーをデバッグ情報(agオプション '-D'を使って)を提供するように更新しました。 – Bludzee

関連する問題