greple #9 検索範囲指定 --include/--exclude
検索範囲指定 --include/--exclude
これはgrepleチュートリアルの9日目です。前回は --inside
と --outside
オプションを使って、検索する対象の範囲を指定する方法について紹介しました。今回は、その続きで --include
と --exclude
オプションについて紹介します。
例外条件を指定したい
--inside
と --outside
は、全体の中から、どこを検索対象にするかという観点で使いました。それに対して --include
と --exclude
は、どこを検索対象から外すかという観点で使います。
--outside
オプションを使って、寿司ネタ領域からまぐろを検索しています。
でも、まぐろは好物だけど、ヅケはあまり好きではなくて、ネギも勘弁して欲しいなあということで、漬けまぐろとねぎまぐろを除外したいと思いました。
この場合 --exclude
オプションに除外したい文字列を与えることで、それに対するマッチを抑制することができます。
greple -n --outside '^\S+' まぐろ sushi.txt --exclude 漬けまぐろ --exclude ねぎまぐろ
ヅケとネギはハイライトされなくなりました。でも、選択肢は変わりませんでした。
文字列には正規表現を使用することができるので --exclude '(漬け|ねぎ)まぐろ'
と書くこともできます。加えて、お子様セットも年齢制限があるので除外しましょう。この場合は単なる文字列ではなく、「お子様セット」ではじまる行全体を指定したいので ^お子様セット.*
と指定します。
greple -n --outside '^\S+' まぐろ sushi.txt --exclude '(漬け|ねぎ)まぐろ' --exclude '^お子様セット.*'
お子様セットは候補に出てこなくなりました。
--inside/--outside と --include/--exclude の使い分け
流れとしては --inside/--outside
で検索対象範囲を拾い出して、--include/--exclude
で絞り込むという使い方になります。
上の例で、--exclude
の代わりに --outside
を使うことはできません。前回書いたように --inside
と --outside
で指定した範囲は和集合として扱われるので、結果として全体に戻ってしまいます。
この例では、--outside
を一度しか使っていないので、そこを --exclude
にしても結果は変わりません。単独で使う場合は、どちらを使っても同じ結果になります。
まとめ
前回の --inside/outside
に加えて --include/exclude
オプションについて紹介しました。
TeX や roff など、マークアップを使った文書ファイルを校正しようとする場合、マークアップ命令やコメント部分は対象から外して、純粋に文章の部分だけを処理する必要があります。
また、原稿の中には自分で書いた文章以外に、引用文であったり、別の文書や書籍のタイトル、固有名詞など、ローカルなルールを適用すべきではない部分もあります。それらを例外として処理対象から外すことができないと実用的なツールとはなりません。greple の機能は、そのような経験から進化してきました。
greple のオプションは、なるべく grep に合わせるようにしているのですが、--include
と --excude
については、まったく違う意味になるので注意してください。
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
Author And Source
この問題について(greple #9 検索範囲指定 --include/--exclude), 我々は、より多くの情報をここで見つけました https://qiita.com/kaz-utashiro/items/84f5a6be6bf996076c64著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .