This is the blog section.
Files in these directories will be listed in reverse chronological order.
This is the multi-page printable view of this section. Click here to print.
This is the blog section.
Files in these directories will be listed in reverse chronological order.
次のアップデートでメジャー番号を 9 に上げて、互換性を失うものも含めて いくつかの仕様変更を検討しています。CPAN にプレリリースしたので、もし 興味のある方は次のようにインストールしてください。
cpanm App::Greple@9.00_02
--colorsub/--cs
オプションの導入update モジュールを使うと、複数ファイルに内にある文字列を一括置換
することができます。この時、--cm
オプションを使って置換後の文字列を
指定するのですが、--cm 'sub{"置換語の文字列"}'
みたいに書くのが億劫
に感じられていました。
そこで --cs '"置換語の文字列"'
のように sub の中の式だけを指定できる
ようになりました。
--cs uc
で、大文字に変換することができます。
次のアップデートでメジャー番号を 9 に上げて、互換性を失うものも含めて いくつかの仕様変更を検討しています。CPAN にプレリリースしたので、もし 興味のある方は次のようにインストールしてください。
cpanm App::Greple@9.00_01
?
の取り扱いこれまで、–le に与えるパターンの中で ?
マークは –or オプショ
ンと同等に扱われていました。しかし、この記法は、自分でも今まで実用的に
使ったことがありません。複数の選択肢を指定するのであれば正規表現を使っ
た方が簡単だし直感的だからでしょう。?foo ?bar
より foo|bar
の方が早
いしわかりやすい。自分でも使ったことがないくらいなので、おそらく世界中
で誰も使ってないと思います。
そこで、新たに –may オプションを導入し、?
マークはその意味を与
えることにします。–may の省略形は -t です。t は tentative の
略で、辞書を引くと「暫定的な」「不確定の」「自信なさげな」「不確かな」
というような意味です。
–may に指定したパターンは必須ではありませんが、もしあればハイライ トされて表示されます。これまでも –must オプションを指定すると、そ れ以外のパターンが同様になくてもいいものとして扱われました。これを明示 的に指定するためのオプションが –may ということになります。
–must/-r オプションと +
マークも今まで通り使うことはでき
るので、非必須パターンを指定するのに2種類の方法ができたことになります。
以下の4種類の記法は、いずれも同じ意味になります。
greple -e foo -e bar -t baz
greple -r foo -r bar -e baz
greple " foo bar ?baz"
greple "+foo +bar baz"
-r と –t の両方を使用することはあまり想定していませんが、こう 書いても同じだし、ある意味曖昧さがなくてわかりやすいとも言えます。
greple -r foo -r bar -t baz
greple "+foo +bar ?baz"
全部を使った場合には、-t が優先的に処理され、それ以外のパターンは
すべて必須となり、次の2つも上の4つと同じ意味になります。bar
がどっち
になるのかわかりにくいので、お勧めはしません。
greple -r foo -e bar -t baz
greple "+foo bar ?baz"
–may オプションの新設は問題ないとして、パターン中の ?
の意味を
変えてしまうのは互換性を大きく損なう仕様変更です。しかし、最初に書いた
ように、この機能を使っている利用者は一人もいないだろうという仮定の元に
強行しようと考えています。
別の文字を使うという方法もあります。たとえば ~
や *
にすれば ?
の
解釈を変える必要はありません。しかし、以前はパターンの一部として認識さ
れていた文字の解釈を変えることは、やはり互換性を損なう仕様変更です。
であれば、元々特殊な意味を持っていて、誰も使っていなかった文字を使う方
が影響は少ないような気がします。なにより、この機能を与えるのに ?
より
ふさわしい文字を思いつかないというのが最大の理由でもあります。
--or
オプションの廃止上の変更にともなって、--or
オプションを廃止します。元々?
マークと
の対称性のために導入したもので、おそらくこれも利用者はいないのではない
かと考えています。
--or "foo bar" --or "yabba dabba"
のような使い方をしている場合も、
-e "foo bar|yabba dabba"
と書けば同じ意味になります。
たくさんのパターンを列挙して、いずれかにマッチしたい場合には、パターン
を1行ずつファイルに格納して -f
オプションで指定することができます。
-f
を使った場合は、それぞれのファイル毎にグループ化されます。
Hugo と Docsy テーマを使って Greple コマンドのホームページを作りました。 まだ、デフォルトのまますぎるので、ぼちぼちカスタマイズして行きましょう。
カバー写真はこちらから。