sift:マルチスレッドで爆速全文検索ファイル検索コマンド

目次
siftコマンドについての概要と詳細
siftコマンドとは
siftコマンドは、Go言語で実装された高速な全文テキスト検索ツールです。Linux、UNIX系OS、macOS、Windowsなどクロスプラットフォーム対応で、grepやag(The Silver Searcher)、rg(ripgrep)などの代替として利用できます。大規模なソースコードリポジトリやディレクトリ構造の中から、高速かつ柔軟にパターン検索を実行できるのが特徴です。
主な用途
- ソースコードやテキストファイル、ログファイルなどの全文検索
- 複雑なディレクトリや大量のファイルからキーワード・パターンの高速抽出
- grepの高機能・高速な代替ツールとしての利用
主な特徴
- 高速な全文検索:Go言語による並列処理で膨大なファイル群も高速検索
- クロスプラットフォーム対応:Linux、macOS、Windowsなどで利用可能
- 柔軟なフィルタリング:ファイル名・拡張子や除外パターン、サイズ・更新日フィルタにも対応
- .gitignore等の自動考慮:不要なファイルやディレクトリを自動除外
- 色分け表示:検索結果やキーワード部分をカラーで強調
- 正規表現サポート:PCRE互換の強力な正規表現が利用可能
- シンプルなバイナリ:単体バイナリでインストールや利用が簡単
基本的な使い方
sift [検索パターン] [ディレクトリやファイル]
sift error:カレントディレクトリ以下で「error」を含む行を検索sift -i failed:大文字小文字を区別せず「failed」を検索sift '^func ':Go言語の関数定義を抽出(正規表現)sift --ext=py import:拡張子が.pyのファイルだけ「import」を検索sift --exclude=vendor:vendorディレクトリを除外して検索sift TODO ~/project/:指定ディレクトリ以下を検索
主なオプション一覧
| オプション | 説明 |
|---|---|
| -i | 大文字小文字を区別しない検索 |
| -w | 単語単位で完全一致検索 |
| -v | 一致しない行を表示 |
| -n | 行番号を表示 |
| -l | マッチしたファイル名のみ表示 |
| -c | マッチ件数のみ表示 |
| --ext=[拡張子] | 指定した拡張子のファイルのみ検索(例:--ext=py) |
| --exclude=[パターン] | 指定したパターンのファイルやディレクトリを除外 |
| --size [範囲] | ファイルサイズを範囲指定して検索 |
| --mtime [日数] | 指定日数以内に更新されたファイルのみ検索 |
インストール方法
RPM系(RedHat, CentOS, Fedoraなど)
$ sudo dnf install sift
Debian系(Debian, Ubuntuなど)
$ sudo apt install sift
その他・最新版の導入: 公式GitHubから各OS用バイナリまたはソースコードを取得可能。まとめ
siftコマンドは、高速かつ柔軟なテキスト検索を実現するモダンな全文検索ツールです。大規模なソースコードやディレクトリの中から素早くパターン抽出ができ、開発やサーバ運用、日常業務の効率化に役立ちます。grepやag、pt、rgなどと用途に合わせて使い分けるのがおすすめです。






