■ QGREP ■

前へ 次へ
No. 122 (121へのコメント)投稿者: araken HP日付: 2002/12/15 15:13:51
題名 : Re:「マッチした場所に文字列を出力」と「検索結果が大きすぎます」

>「and検索」で2つの単語が別の行にあるとき(あいだに改行があるとき)、
>(「2行を連結」にしてあるので)ちゃんとヒットはしますが「マッチした場所に
>文字列を出力」しません。具体的には先にあるほうだけ出力します。
>両方出力するようにはできないのでしょうか?

 どういうときに出力されないのでしょうか?


>それから、「ブロック出力」も本当に重宝しているのですが、うまく終了行のパターン
>を設定できなかった場合、とてんでもなく長いブロックが出力されたりして、結局
>「---検索結果が大きすぎます---」と表示され設定を変更して全てやり直しています。
>何か設定を変更して快適にする方法はないでしょうか

 間違いを自動で検出することはできないので、困難かと思います。

No. 123 (122へのコメント)投稿者: 愛用者日付: 2002/12/16 12:14:19
題名 : Re^2:「マッチした場所に文字列を出力」と「検索結果が大きすぎます」

arakenさん、どうも有難うございます。

> どういうときに出力されないのでしょうか?

例えば、以下のようなテキストで、マッチした場所に「☆」を出力するとします。

ABCD
EFGH
IJKL

「A and D」で検索すると
☆ABC☆D
EFGH
IJKL

「A and E」で検索すると
☆ABCD☆
EFGH
IJKL

そして、「A and F」で検索すると
☆ABCD
EFGH
IJKL
ヒットはしますが、Fの前に「☆」は出力されません(G・Hでも同様です)

☆ABCD
E☆FGH
IJKL
というふうに出力できたら大変便利です。

ちなみに。「A and F and H」で検索しても、先頭の「A」にしか出力しません。

大量のデータがヒットした場合、この出力した「☆」で検索して順番に読んでいってます。また、複雑な「and」「or」検索を駆使しています。
そのため、以上のように「☆」が出力されていなかった場所は飛ばしてしまっていたことが判明して困っている次第です。


また、「---検索結果が大きすぎます---」とよく出てしまいますが
これはQGREPの容量を超えたのでしょうか、QXの容量を超えたのでしょうか?
これはやはり設定等で変えることは不可能ですよね。


毎日便利に使わせてもらってます。
何かうまい方法があれば有難いです。どうぞよろしくお願いします。

No. 124 (123へのコメント)投稿者: araken HP日付: 2002/12/23 19:37:40
題名 : Re^3:「マッチした場所に文字列を出力」と「検索結果が大きすぎます」

"それから、「ブロック出力」"とあったので、ブロック出力は別の話かと思っていました。すべてを組み合わせたときは確かにそうですね。考えます。


>また、「---検索結果が大きすぎます---」とよく出てしまいますが
>これはQGREPの容量を超えたのでしょうか、QXの容量を超えたのでしょうか?

 QGREPの方です。

No. 125 (124へのコメント)投稿者: 愛用者日付: 2002/12/24 11:40:49
題名 : Re^4:「マッチした場所に文字列を出力」と「検索結果が大きすぎます」

arakenさん、お返事ありがとうございます。
分かりづらい説明ですみません。

「文字列を出力」への希望、ご検討いただけるとありがたいです
(QGREPの出力容量も増えればさらにうれしいです)。

どうぞよろしくお願いします。

No. 126投稿者: shige日付: 2003/01/08 03:00:11
題名 : 初心者です。

QGREPであるはずの文字列が検索できません。
HELPに書いてあることは確認したのですが・・・
ほんとに初歩的な事ですいません。
よろしく(^^♪

No. 127 (126へのコメント)投稿者: CINEPHILE日付: 2003/01/12 05:53:51
題名 : Re:初心者です。

>QGREPであるはずの文字列が検索できません。

 検索した文字列も検索時の設定などの情報も明記されていないので、ちょっ
と答えようがないと思います。質問する場合には、もう少し状況を具体的に説
明しないと、なかなかレスが付かないと思いますよ。

No. 128投稿者: さと日付: 2003/01/16 01:57:57
題名 : マッチした場所に文字列を出力

「マッチした場所に文字列を出力」を使おうとしているのですが、
うまく「文字列を出力」しない場合があります。

まず、ひとつの単語で検索し、検索した言葉が同じパラグラフで
二ヶ所以上ある場合、
先にあるほうにしか出力されません。

また、「or検索」した場合も、最初にヒットした方しか出力されません。

なにか設定が間違っているのでしょうか?
(それとも、そもそも不可能なことでしょうか)
もし、解決法があれば教えてください。

よろしくお願いします。

No. 129 (128へのコメント)投稿者: CINEPHILE日付: 2003/01/18 16:53:08
題名 : Re:マッチした場所に文字列を出力

>まず、ひとつの単語で検索し、検索した言葉が同じパラグラフで
>二ヶ所以上ある場合、
>先にあるほうにしか出力されません。
>
>また、「or検索」した場合も、最初にヒットした方しか出力されません。

 改行まで一行ずつ(つまりパラグラフ単位で)読み込んで、ヒットしたら次
へ行くという動作になると思うので、現状では無理かもしれません。また、演
算子 or を使う場合は、どれか一つヒットすれば条件を満たすことになるので、
やはりこのようになってしまうような気がします。
 ログを QX で開いているのであれば、文字列が出力されなかった箇所だけ、
正規表現を使って適当に置換するというのはどうでしょうか。

\([^◎]\)QX → \1◎QX

 しかし、これなら最初から文字列を出力せずに、ログを普通に置換しても同
じことですね。

QX → ◎QX

 勝手にやってくれるといいんですが、検索条件があまり複雑でなければ、手
作業でもそれなりにしのげるのでは?

No. 130 (129へのコメント)投稿者: さと日付: 2003/01/22 01:59:26
題名 : Re^2:マッチした場所に文字列を出力

CINEPHILEさん、返信ありがとうございます。

やはり現段階では難しいのでしょうか。

実はログを置換たり検索したりいろいろためしました。
(ちなみに、ログというのは検索結果が出力されてくるファイルの
ことでいいですよね?)

しかし、複雑な検索<例えば、「( A or B or C ) and ( D or E or F )」のような>
をやっているためなにぶん手間がかかります。

また、2行にまたっがった単語の場合、QXでは検索や置換はできないのではないでしょうか。

100以上のヒットがあるものを何十回も繰り返す必要があり、
本当に疲れてしまいます。

何かいい方法ってないんでしょうかねえ。

No. 131 (130へのコメント)投稿者: CINEPHILE日付: 2003/01/22 21:12:10
題名 : Re^3:マッチした場所に文字列を出力

>しかし、複雑な検索<例えば、「( A or B or C ) and ( D or E or F )」のような>
>をやっているためなにぶん手間がかかります。

 QGREP.INI から最新の履歴を取得して、すべての文字列に関して一括置換を
実行するという手順で半自動化することは、理屈の上では可能だとは思います
が、これだけ条件が複雑だと、まず文字列をすべて取り出すのが大変かもしれ
ません。
 QGREP が取り出せるのだから、マクロで取り出せないはずはありませんが、
文字列には当然正規表現が含まれる可能性もあるので、あれこれ考えると、や
はりかなりハードルが高そうです。

# ちょっと長くなるので、いったん切ります。

次へ
現在の既読番号は 0  既読を


メールアドレスを表示するにはURLの後ろに &m=6947ef7c をつけてください。
フォーラム一覧

http://www2k.biglobe.ne.jp/~araken/
http://0ban.com/araken/