/usr/bin/migemo-grep is in migemo 0.40-10.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 | #!/usr/bin/ruby
#
# migemo-grep - a simple grep-like tool employing migemo.
#
# Copyright (C) 2001 Satoru Takabayashi <satoru@namazu.org>
# All rights reserved.
# This is free software with ABSOLUTELY NO WARRANTY.
#
# You can redistribute it and/or modify it under the terms of
# the GNU General Public License version 2.
#
$KCODE = "e"
require 'migemo'
require 'getoptlong'
require 'kconv'
include Kconv
def print_usage
print "\
Usage: migemo-grep [OPTION]... DICT PATTERN [FILE]...
-u, --user-dict=DICT Use DICT as a user dictionary.
-r, --regex-dict=DICT Use DICT as a regex dictionary.
"
end
$static_dict = nil
$dict_cache = nil
$user_dict = nil
$regex_dict = nil
$pattern = nil
def parse_options
options = Hash.new
parser = GetoptLong.new
parser.set_options(['--help', '-h', GetoptLong::NO_ARGUMENT],
['--regex-dict', '-r', GetoptLong::REQUIRED_ARGUMENT],
['--user-dict', '-u', GetoptLong::REQUIRED_ARGUMENT],
['--type', '-t', GetoptLong::REQUIRED_ARGUMENT],
['--insert', '-i', GetoptLong::REQUIRED_ARGUMENT],
['--separator', '-s', GetoptLong::REQUIRED_ARGUMENT],
['--nocache', '-n', GetoptLong::NO_ARGUMENT])
parser.each_option do |name, arg|
options[name.gsub(/^--/, "")] = arg
end
if options['help']
print_usage
exit 1
end
if ARGV.length < 2
print_usage
exit 1
end
dictname = ARGV.shift
$static_dict = MigemoStaticDict.new(dictname)
$dict_cache = MigemoDictCache.new(dictname + ".cache")
if options['user-dict'] != nil
if File.readable?(options['user-dict'])
$user_dict = MigemoUserDict.new(options['user-dict'])
else
raise "user dictionary not found: #{options['user-dict']}"
end
end
if options['regex-dict'] != nil
if File.readable?(options['regex-dict'])
$regex_dict = MigemoRegexDict.new(options['regex-dict'])
else
raise "regex dictionary not found: #{options['regex-dict']}"
end
end
$pattern = ARGV.shift
end
def main
parse_options
files = ["-"]
files = ARGV if ARGV.length > 0
migemo = Migemo.new($static_dict, $pattern)
migemo.dict_cache = $dict_cache if $dict_cache
migemo.user_dict = $user_dict if $user_dict
migemo.regex_dict = $regex_dict if $regex_dict
regex = Regexp.new(migemo.regex)
utf8 = (ENV['LANG'] || "").include?("UTF-8")
files.each do |file|
File.foreach(file) do |line|
line = toeuc(line)
if regex =~ line
print file + ":" if files.length > 1
puts utf8 ? NKF.nkf("-Ew", line) : line
end
end
end
end
main
|