検索のためのシンプルなCLIツール

検索のためのシンプルなCLIツール

同様のCLIツールがありますかgnome-search-tool?を使用していますが、locateディレクトリ名の一致の結果をグループ化することをお勧めします。私が望む結果ではなく、多くのパスマッチ結果を得ました。

/tmp/dir_match/xyz
/tmp/dir_match/xyz2/xyz3

十分に高速である必要があるため、検索インデックスを使用する必要があります。

答え1

富士一般的なコマンドラインファジーファインダーです。

彼らのgithubページはhttps://github.com/junegunn/fzf

答え2

標準のLinuxコマンドは次のとおりです。

  • findファイル名を検索するコマンドです。例:

    • xyzというファイルを探す/tmp

      $ find /tmp -type f -name xyz
      
    • 名前に「xyz」を含むディレクトリを探す/tmp

      $ find /tmp -type d -name '*xyz*'
      
  • find コマンドと grep コマンドは、ファイルの内容を検索するために使用されます。例:

    • /tmpxyzを含むファイルを探す

      $ find /tmp -type f -exec grep -l xyz {} \;
      

答え3

locate非常に汎用性があり、-rパターンと正規表現パターンを使用できるため、複雑な一致をたくさん実行できます。たとえば、ディレクトリa a0 a1などを一致させるには、を使用します。パスには2番目のディレクトリが'/a[0-9]*/'必要なため、ファイルがあるディレクトリのみが表示されます。/ディレクトリを個別に一致させるには、を使用して$パターンをパスの末尾に固定します'/a[0-9]*$'

少なくとも2つのバージョンがありますlocate。そのうちの1つは次のいずれかです。牛に似た一種の栄養、Redhatのもの(mlocateという)があります。--version持っているものを見つけるために使用されます。正規表現スタイルは少し異なります。たとえば、一致自体を回避する代わりに上記のパターンを'/a[0-9]*$'使用するように変更すると、mlocateはrequireを使用し、gnuはを使用します。+*a\++

たとえば、ディレクトリaとその下のすべての項目を一致させるには、両方のバージョンで使用できます。

locate -r '/a\(/\|$\)'

mlocate の場合、--regex拡張構文をプレフィックスとして使用できます。

locate --regex '/a(/|$)'

--regextype egrepたとえば、gnulocateで同じことを行うには、オプションを追加する必要があります。

関連情報