|
こんにちは。秀丸愛用者の「でるもんた・いいじま」と申します。
> grep検索で質問なのですが、A and not B のような検索はどう
> 入力すればいいのでしょうか?
たぶん、「単一の正規表現でそれを表現する一般的な方法は存在しない」
というのが答になると思います。AとBに共通部分がいくらかでもあれば、
(?...) を使ってうまく書けるかもしれません。
> 検索するとユニックスやリナックスでは A | -v B のように書く
> みたいですが、秀丸のgrepではうまくいきません。
この文脈からすると、コマンドラインからの操作でしょうか?
コマンドラインの場合、
$ grep 'A | -v B' *.txt
ではダメなはずです。最低でも、
$ grep 'A' *.txt | grep -v 'B'
としなければいけません。
しかも、この検出は行単位ですので、「Aに該当して、Bに該当しない行」が
すべてヒットします。つまり、「ファイルのどこか一部分がAにヒットして、
「そのファイルのどこも」Bにヒットしない、そういうものだけをリスト
アップしたい、という要望は上記のコマンドではできません。
もしそういうことであれば、ちょっと手の込んだスクリプトを書くことに
なります。(あー、でもxargsを使えば簡単に書けそうな気もするな…(笑))
もし秀丸でそういう仕様をご希望であれば、これは間違いなくマクロでの
作業になると思いますし、もし文字コードの問題がなければ、grep.exeと
xargs.exeをmsysあたりから引っ張ってきて呼び出すのが楽だと思います。
|
|