ack – 開発者向けのテキスト検索コマンド

検索・探索
スポンサーリンク

ack コマンドは、ソースコード検索に特化した高速なテキスト検索ツールです。
grep の代替として設計され、デフォルトで不要なファイルやディレクトリ(例: .git/, node_modules/)を無視し、プログラミング言語ごとに便利なフィルタを備えています。

構文(Syntax)

ack [オプション] <パターン> [パス...]

主なオプション一覧

オプション説明使用例
<パターン>正規表現で検索ack TODO
<パス>特定のファイルやディレクトリを対象に検索ack error ./logs
-i大文字小文字を無視ack -i error
-w単語単位で検索ack -w main
-lマッチしたファイル名のみ表示ack -l FIXME
-cファイルごとのマッチ数を表示ack -c TODO
--count全体のマッチ数を表示ack --count TODO
--ignore-dir=DIR指定ディレクトリを無視ack --ignore-dir=vendor
--type=LANG特定言語のファイルに限定して検索ack --type=perl myfunc
--help-types利用可能な言語タイプ一覧を表示ack --help-types

実行例

“TODO” を含む行を検索

ack TODO

出力例:

src/main.py
12:    # TODO: implement login

大文字小文字を無視して検索

ack -i error ./logs

ファイル名だけを表示

ack -l FIXME

出力例:

src/lib.rs
src/utils.rs

マッチ数をカウント

ack -c TODO

出力例:

src/main.py:2
src/utils.py:1

Perl ファイルだけを対象に検索

ack --type=perl subroutine

検索対象の言語一覧を確認

ack --help-types

出力例(一部):

--[no]perl      Perl source
--[no]python    Python source
--[no]ruby      Ruby source

特定ディレクトリを無視

ack --ignore-dir=vendor password

エラー例(パターン未指定)

ack

出力例:

Usage: ack [OPTION...] PATTERN [FILES OR DIRECTORIES...]

関連コマンド

  • grep : 標準的なテキスト検索コマンド。
  • ripgrep (rg) : Rust 製でより高速な検索ツール。
  • ag (The Silver Searcher) : ack に似た高速検索ツール。

備考

  • ack は Perl で実装されており、正規表現検索に強い。
  • .ackrc ファイルを使うことでデフォルト設定をカスタマイズ可能。
  • grep より開発用途に特化しており、不要なファイルを自動的に除外してくれるのが大きな特徴。

参考

スポンサーリンク
Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする

コメント