はじめに
greple
greple は、作者が1990年初頭から開発を続けているコマンドです。名前の通り Unix コマンドの grep と同じように、テキストから文字列を検索するためのコマンドラインツールです。le は lexical expression の意味ですが、それについてはこれからおいおい説明していきます。
読み方
読み方は特に決めていませんが、なんとなく「ぐれっぷる」と呼んでいます。アクセントは「れ」にあったり、今時の平板化した読み方だったりと、人によって様々です。英語的に発音すると「ぐれぽー」みたいになるんでしょうか。
「ぐれっぷ・えるいー」と読んでもいいけど、長いですね。アメリカ人、なんでも単語化しようとしますしね。SCSI が「すかじー」になるくらいで。昔、PCMCIA を無理やり読んでいる人がいて驚いたことがあります。
特徴
greple は、以下のような特徴を持っています。
- 複数のキーワードを指定できる
- 行だけではなく、検索対象ブロックを柔軟に指定できる
- 検索対象の範囲や条件を指定できる
- 複数行に渡るパターンを検索できる
- 多彩な色指定が可能
- 設定ファイルやモジュールによるカスタマイズ/拡張が可能
- 単なる検索だけではなく、文字列処理のフレームワークとして機能する
これらの特徴や使い方について、これから毎日少しずつ解説していこうと思います。
想定される用途
元々、文章の校正作業を楽にするために作ったもので、その後もまとまった翻訳の仕事が入る度に少しずつ拡張を続けてきました。そのため、それほど多くないテキストファイル(せいぜい書籍数冊分程度)に対して、様々な条件を課して検索やそれに類する処理を行うというのが想定される主な使い方です。
大量のデータを対象にするのであれば、それに適したツールが他にたくさんあるので、そういうものを使ってください。ちなみに、ripgrep というコマンドが高速かつ高機能です。
また、greple は、すべてのデータを最初に読み込んでから処理するため、連続して生成されるデータを逐次処理していくような目的に使うことはできません。
インストール
greple は Perl で記述されていて、cpanminus (cpanm) を使ってインストールします。cpanminus の使い方や、Perl の環境設定については、他の記事を参照してください。cpan や cpanplus など、他のインストーラーでも正しく使えば問題ないはずですが、保証はできません。
$ cpanm App::Greple
-n
オプションをつけると、テストを省略して短時間でインストールすることができます。
リポジトリ
ソースコードは github で管理しています。cpan にも、ほぼ最新版が上がっているので、どちらからインストールしても同じです。cpanm
コマンドで、github の URL を指定してインストールすることもできます。
関連記事
SEE ALSO
- https://qiita.com/kaz-utashiro/items/5b6bcbe54891b3bd9db5 ←イマココ
- https://qiita.com/kaz-utashiro/items/eb8c7067e6de34842fe3
- https://qiita.com/kaz-utashiro/items/165e744d4250adedc4c1
- https://qiita.com/kaz-utashiro/items/439e6abcecf36c520703
- https://qiita.com/kaz-utashiro/items/24ac0b8fdd30b598e069
- https://qiita.com/kaz-utashiro/items/a1ba4e3d07cf37dc25e3
- https://qiita.com/kaz-utashiro/items/0c8c944c17a72724b771
- https://qiita.com/kaz-utashiro/items/8783c2fd0cc4315b9a3d
- https://qiita.com/kaz-utashiro/items/84f5a6be6bf996076c64
- https://qiita.com/kaz-utashiro/items/ebc7ea99f800cfc8c90c
- https://qiita.com/kaz-utashiro/items/25a14e75380c39b5e0af
- https://qiita.com/kaz-utashiro/items/ebbeb8a5538a15ff04fc
- https://qiita.com/kaz-utashiro/items/b265deef9c9b1953a414
- https://qiita.com/kaz-utashiro/items/2b20e0226cffde213ce0
- https://qiita.com/kaz-utashiro/items/16b5142ef7a89aa35380
- https://qiita.com/kaz-utashiro/items/d19fe5ee859f31ce172c
- https://qiita.com/kaz-utashiro/items/09a5f5cf08ce314e2add
- https://qiita.com/kaz-utashiro/items/6e4b1f51455e587ef743