単純な検索
greple の最も単純な使い方は grep と同じです。
greple pattern file
ファイルが指定されなければ、標準入力を対象にします。
grep と共通のオプションもあります。以下に挙げたものは、grep とほぼ同様の意味を持ちますが、挙動が若干違うものもあります。
-
-n
行番号を表示する -
-i
: 大文字小文字を無視する -
-A
,-B
,-C
: 前後の行を表示する -
-o
: マッチした部分だけを表示する -
-h
,-H
: ファイル名の表示を制御する -
-l
: マッチしたファイル名のみを表示する -
-c
: マッチした数を表示する -
-m
: 表示数を制御する
正規表現
greple は、特別なオプションを指定しなくても、パターンに Perl の正規表現をそのまま使うことができます。どのバージョンの正規表現が使えるかは、実行する処理系に依存します。
正規表現は、行単位ではなくファイル全体を対象としてマッチしますが、デフォルトで複数行マッチが有効になっていて、行頭・行末を示す ^
・$
はすべての行にマッチします。
Perl 発祥の正規表現は PCRE (Perl Compatible Regular Expression) として、様々な言語やツールに組み込まれています。ripgrep の場合は、--pcre2 オプションをつけることで利用可能です。
実行例
次のようなファイルを用意してみました。某寿司チェーンのメニューを参考に少しアレンジしましたが、この程度ならまさか盗用とは言われないでしょう。このファイルに対して greple コマンドを実行してみます。
サービスセット 熟成まぐろ えび たまご いか サーモン いなり ねぎまぐろ サラダ
お子様セット 熟成まぐろ えび たまご いなり ツナサラダ
特上セット 中とろ 熟成まぐろ 熟成真鯛 はまち 赤えび ほたて うなぎ かに いくら
特上極旨セット 中とろ はまち かに いくら 赤えび サーモン うなぎ うに
うどんセット 熟成まぐろ サーモン たまご えび うどん
サラダ軍艦セット えびマヨ ツナサラダ サラダ シーフードサラダ
人気セット 熟成まぐろ 漬けまぐろ サーモン びんちょう いか えび えびアボカド たまご
まぐろづくしセット 中とろ 熟成まぐろ ねぎまぐろ
プレミアムセット 中とろ まぐろ サーモン 赤えび はまち うなぎ かに いくら
cat -n するとこうです。
greple
行番号を表示する -n オプションをつけて greple を実行してみます。
greple は、このように、デフォルトで検索した文字列を色付きでハイライトして表示します。最近の検索系コマンドは大概カラー出力に対応しているので珍しくはありません。
grep
grep は、--color オプションをつけることでカラー出力ができます。
ripgrep
ripgrep は、デフォルトでハイライト出力します。行番号やファイル名には異なる色がつきます。
端末以外への出力
これらのコマンドは、出力が端末でない場合には、色付き出力の機能を無効にします。パイプにも着色して出力するためには --color=always
オプションを指定します。--color
オプションの仕様は、どのコマンドもほぼ共通で、値として never
, auto
, always
を取ります。ただ、grep はデフォルトが never
、greple と ripgrep は auto
という違いがあります。
実際のところ、現代の使い方では常にカラー出力を有効にしていた方が便利です。greple で、そのように設定するためには、~/.greplerc
に次のように書いておきます。
option default --color=always
カラー出力を less で見たい時には、次のように環境変数を指定します。LESSANSIENDCHARS は、通常は m
だけですが、greple は K で終わる行消去のシークエンスを使っているので、このようにしないと出力が壊れることがあります。grep も同様なので、こうしておいて損はありません。
export LESS="-cR"
export LESSANSIENDCHARS="mK"
まとめ
単純な文字列を指定した検索について説明しました。もっとも、このような使い方であれば greple を使う必要はまったくないので別のツールを使った方がいいでしょう。実行速度に関しては、インタプリタ型の greple はかなり不利ですが、一般的な使い方であれば実用上問題になるようなことはありません。
SEE ALSO
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