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