/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
 |