No. 509/622 Index Prev Next
Path: titcca!titisa!ichisugi
From: ichisugi@titisa.is.titech.ac.jp (ICHISUGI Yuuji)
Newsgroups: fj.kanji
Subject: Re: How to grep Japanese string?
Message-ID: < 4669@titisa.is.titech.ac.jp>
Date: 3 Feb 90 01:21:45 GMT
References: < HANDA.90Feb3005102@etlhit.etl.go.jp> < boR+D.ysato@etl.go.jp>
Distribution: fj
Organization: Dept. of Information Sciences, Tokyo Institute of Technology, Tokyo, JAPAN
Lines: 33
In article < boR+D.ysato@etl.go.jp> ,
ysato@etl.go.jp (Yutaka Sato) says:
> On 02/03/90, handa@etl.go.jp (Kenichi Handa) wrote
> in < HANDA.90Feb3005102@etlhit.etl.go.jp> (fj.editor.emacs:1880/etlcom):
> |皆さん、非日本語OSのもとでどうやって日本語の grep をやって
> |いますか?
> |bash にしても csh にしてもコマンドの引数に漢字を渡せないため、
> |しょうがないから Nemacs の中で
> |
> | (call-process "/bin/fgrep" nil t t
> | "-n" "漢字" "filename" "/dev/null")
> |
> |に似たことをやっているのですが、これでは filename にワイルド
> |カードが使えなくて不便です。
私の場合、次のような jgrep というコマンドを作って使ってます。
ただし、1行目の ^[ は本当の escape です。
漢字はXのカットアンドペーストで入れてます。
----------
ESC=" ^[" # ESCAPE
echo Enter search strings separated by Newlines, then type \^D. > /dev/tty
string=`sed -e " s/$ESC\\\$[@B]//g" -e " s/$ESC([JB]//g" /dev/tty`
fgrep -e " $string" $*
/dev/tty から読み込んだ漢字の文字列のエスケープシーケンスをはぎとっている
だけなので、もちろん漢字の grep としては不完全ですが、
標準入出力をパイプでつなげるし、複数の文字列もサーチできるし、
fgrep にオプションも渡せるので、けっこう使えてます。
---
東京工業大学 情報科学科 (M2) 一杉裕志 ichisugi@is.titech.junet
Next
Continue