zshのエライところ – 数値マッチ
>
>はてな勉強会のzshの回
>
は項目だけ眺めたけれど、オレ的にそこまでうれしいものばかりでもなかった。コマンドごとに補完関数が定義されているってのは、近代的なシェルはみなそうなので、もし知らないのであれば、bashだろうがtcshだろうが頑張って設定してくださいとしか言いようがない。でもまぁ、 ./configure まで補完してくれるかどうかは知らない。……で、だ。 > >zsh を使っていて本当に「ああこれすごいイイなぁ」と思える機能もいくつもあるんですが(たとえば、最低限、複数行のコマンドが書けないとふつう困ると思うとか)、いま言いたいのは、数値マッチング、つまり <n-m> みたいな表記のこと。 > >この <n-m> というのは、「nからmまでの数値」に対応するグロッビング。これが非常に便利でここちよいのですね。数字で管理されているようなファイル群というのはたくさんあって、 MH 形式のメールボックスが、たとえばあるとしましょう。ここから、たとえば 573 〜 927 までの数値を取ってきたいとする。ふつうのグロッビングだと発狂しそうな話で、何回も同じ処理を繰り返さないといけなくなるんじゃないでしょうか。でも zsh なら、 <573-927> などと書けばそれでオーケーなわけで、これは便利です。 > >n と m はそれぞれ省略でき、それぞれ始点ナシと終点ナシという意味です。たとえば <573-> なら、573より大きな数値にマッチします。 5 とか 57 にマッチするとかいう危惧は一切必要なし。数値の大小関係を zsh がマッチしてくれます。 <-927> も同様で、927より小さな数値にだけマッチ。究極的には<->と書くことができ、これは「何か数値」に対応します。 > >これだけだと、まだどこまで便利なのかわからないかもしれない。キモなのは、コイツがファイル名グロッビングとして実装されているということで、たとえば、 rm -f test<->.txt とかやると、そこに何か数値があるような test*.txt を消すことができます。 > >この方式は、実際問題としてそんなに頻繁に使うかというと、実はそれほど使いません。が、意識の端に登って「ああやっぱ便利だなぁ」と思うくらいには使いますよ。覚えておきましょう。 >
は項目だけ眺めたけれど、オレ的にそこまでうれしいものばかりでもなかった。コマンドごとに補完関数が定義されているってのは、近代的なシェルはみなそうなので、もし知らないのであれば、bashだろうがtcshだろうが頑張って設定してくださいとしか言いようがない。でもまぁ、 ./configure まで補完してくれるかどうかは知らない。……で、だ。 > >zsh を使っていて本当に「ああこれすごいイイなぁ」と思える機能もいくつもあるんですが(たとえば、最低限、複数行のコマンドが書けないとふつう困ると思うとか)、いま言いたいのは、数値マッチング、つまり <n-m> みたいな表記のこと。 > >この <n-m> というのは、「nからmまでの数値」に対応するグロッビング。これが非常に便利でここちよいのですね。数字で管理されているようなファイル群というのはたくさんあって、 MH 形式のメールボックスが、たとえばあるとしましょう。ここから、たとえば 573 〜 927 までの数値を取ってきたいとする。ふつうのグロッビングだと発狂しそうな話で、何回も同じ処理を繰り返さないといけなくなるんじゃないでしょうか。でも zsh なら、 <573-927> などと書けばそれでオーケーなわけで、これは便利です。 > >n と m はそれぞれ省略でき、それぞれ始点ナシと終点ナシという意味です。たとえば <573-> なら、573より大きな数値にマッチします。 5 とか 57 にマッチするとかいう危惧は一切必要なし。数値の大小関係を zsh がマッチしてくれます。 <-927> も同様で、927より小さな数値にだけマッチ。究極的には<->と書くことができ、これは「何か数値」に対応します。 > >これだけだと、まだどこまで便利なのかわからないかもしれない。キモなのは、コイツがファイル名グロッビングとして実装されているということで、たとえば、 rm -f test<->.txt とかやると、そこに何か数値があるような test*.txt を消すことができます。 > >この方式は、実際問題としてそんなに頻繁に使うかというと、実はそれほど使いません。が、意識の端に登って「ああやっぱ便利だなぁ」と思うくらいには使いますよ。覚えておきましょう。 >