みなさんは、まだgrepを使い続けていますか?
私は、令和の時代になっても使っていました。
でも、もう今後はgrepを使う機会は減るでしょうね。
その代わりに、ag(The Silver Searcher)を使っていきます。
本記事の内容
- ag(The Silver Searcher)とは?
- OS標準のag(The Silver Searcher)
- ag(The Silver Searcher)のインストール
- ag(The Silver Searcher)の動作確認
それでは、上記に沿って解説していきます。
ag(The Silver Searcher)とは?
ag(The Silver Searcher)は、コードを検索するためのツールです。
grepと同じと言えば、大抵の人はわかるでしょう。
そして、ag(The Silver Searcher)はAckのクローンとしてスタートしています。
Ackもgrepと同じようようなモノです。
でも、いまではag(The Silver Searcher)とAckは機能的に異なります。
何よりも、処理速度が異なります。
典型的な使い方では、agはackよりも5~10倍高速ということです。
整理すると、速度的には以下の序列となります。
ag > ack > grep
検索ツールは地味ですが、よく使うコマンドではあります。
コードよりは、ログを検索することが多いですけどね。
その基本となるツールが、かなり速度UPしているという話になります。
以上、ag(The Silver Searcher)について説明しました。
次は、OS標準のag(The Silver Searcher)を確認します。
OS標準のag(The Silver Searcher)
今回は、Ubuntuへag(The Silver Searcher)をインストールします。
インストール先となるのは、以下のUbuntuです。
$ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=20.04 DISTRIB_CODENAME=focal DISTRIB_DESCRIPTION="Ubuntu 20.04.1 LTS"
そして、デフォルトでag(The Silver Searcher)がインストールされていません。
そのため、別途インストールする必要があります。
ただ、インストールは簡単です。
OS標準のag(The Silver Searcher)が存在しています。
$ sudo apt show silversearcher-ag Package: silversearcher-ag Version: 2.2.0-1 Priority: extra Section: universe/utils Origin: Ubuntu Maintainer: Hajime Mizuno <mizuno-as@ubuntu.com> Bugs: https://bugs.launchpad.net/ubuntu/+filebug Installed-Size: 131 kB Depends: libc6 (>= 2.14), liblzma5 (>= 5.1.1alpha+20120614), libpcre3, zlib1g (>= 1:1.1.4) Conflicts: python-ase (<< 3.8.1.3440) Homepage: https://github.com/ggreer/the_silver_searcher Download-Size: 40.1 kB APT-Sources: http://archive.ubuntu.com/ubuntu focal/universe amd64 Packages Description: very fast grep-like program, alternative to ack-grep The Silver Searcher is grep-like program implemented by C. An attempt to make something better than ack-grep. . It searches pattern about 3–5x faster than ack-grep. It ignores file patterns from your .gitignore and .hgignore.
バージョンは、2.2.0です。
また、最新のag(The Silver Searcher)は2.2.0となります。
つまり、OS標準のモノは最新と言うことです。
なお、2.2.0は2018年8月7日にリリースされています。
それ以降、更新がないということです。
それは、ある意味、完成したということなのでしょう。
以上、OS標準のag(The Silver Searcher)についての説明でした。
次は、ag(The Silver Searcher)をインストールしていきます。
ag(The Silver Searcher)のインストール
インストールの際には、以下を忘れずに。
$ sudo apt-get update
あとは、aptコマンドでインストールするだけです。
$ sudo apt-get -y install silversearcher-ag
インストールは、すぐに終わります。
やはり、OS標準のモノをインストールするのは簡単です。
以上、ag(The Silver Searcher)のインストールについての説明でした。
最後は、ag(The Silver Searcher)の動作確認を行います。
ag(The Silver Searcher)の動作確認
まずは、バージョン確認を行います。
$ ag --version ag version 2.2.0 Features: +jit +lzma +zlib
ちゃんと、最新バージョン2.2.0がインストールされています。
次は、grepとagの比較を行います。
次のような内容を持つファイルを用意します。
test.txt
a ab abc
このファイルをそれぞれのコマンドで検索してみましょう。
grep
$ grep a text.txt a ab abc
普通に見慣れた表示結果です。
ag
$ ag a text.txt 1:a 2:ab 3:abc
デフォルトで行が表示されています。
まとめ
ag(The Silver Searcher)はgrepに速度で圧倒しています。
ただ、今回の動作確認だけでは、その差を体感できていません。
そして、単純にgrepをagに置き換えるだけで利用できることはわかりました。
また、ag(The Silver Searcher)の導入が容易であることも確認してきました。
それなら、agコマンドを使わない手はありませんね。