gren (grep next)
DESCRIPTION:
gren is a next grep tool.
CONCEPT:
-
The basis is find+grep.
-
The item that the user specifies to the minimum
-
The binary or the text or the tool judges it from the automatic operation.
-
-
Convenient retrieval result
INSTALL:
gem install gren
USAGE:
gren [option] pattern [dir]
-i, --ignore Ignore case.
-l, --listing The searched file name is displayed.
-f, --file-regexp REGEXP Search file regexp. (default: ".")
--if, --ignore-file REGEXP Ignore file pattern.
--id, --ignore-dir REGEXP Ignore dir pattern.
SAMPLE:
“FileTest” is retrieved below the present directory.
% gren FileTest
pkg/gren-0.0.5/lib/gren/findgrep.rb:34: next unless FileTest.file?(fpath)
pkg/gren-0.0.5/lib/gren/findgrep.rb:39: unless FileTest.readable?(fpath)
pkg/gren-0.0.5/lib/gren/findgrep.rb:44: @result.size += FileTest.size(fpath)
pkg/gren-0.0.5/lib/gren/findgrep.rb:53: @result.search_size += FileTest.size(fpath)
pkg/gren-0.0.5/lib/gren/findgrep.rb:95: FileTest.directory?(fpath) &&
pkg/gren-0.0.4/lib/gren/findgrep.rb:34: next unless FileTest.file?(fpath)
pkg/gren-0.0.4/lib/gren/findgrep.rb:39: unless FileTest.readable?(fpath)
pkg/gren-0.0.4/lib/gren/findgrep.rb:44: @result.size += FileTest.size(fpath)
pkg/gren-0.0.4/lib/gren/findgrep.rb:53: @result.search_size += FileTest.size(fpath)
pkg/gren-0.0.4/lib/gren/findgrep.rb:95: FileTest.directory?(fpath) &&
lib/gren/findgrep.rb:34: next unless FileTest.file?(fpath)
lib/gren/findgrep.rb:39: unless FileTest.readable?(fpath)
lib/gren/findgrep.rb:44: @result.size += FileTest.size(fpath)
lib/gren/findgrep.rb:53: @result.search_size += FileTest.size(fpath)
lib/gren/findgrep.rb:95: FileTest.directory?(fpath) &&
dir : /Users/ongaeshi/Documents/gren (0.01sec)
files : 49 in 53 (35.63KB in 61.53KB)
match : 3 files, 15 hit
“FileTest” is retrieved below the directory pkg/
% gren FileTest pkg/
pkg/gren-0.0.5/lib/gren/findgrep.rb:34: next unless FileTest.file?(fpath)
pkg/gren-0.0.5/lib/gren/findgrep.rb:39: unless FileTest.readable?(fpath)
pkg/gren-0.0.5/lib/gren/findgrep.rb:44: @result.size += FileTest.size(fpath)
pkg/gren-0.0.5/lib/gren/findgrep.rb:53: @result.search_size += FileTest.size(fpath)
pkg/gren-0.0.5/lib/gren/findgrep.rb:95: FileTest.directory?(fpath) &&
pkg/gren-0.0.4/lib/gren/findgrep.rb:34: next unless FileTest.file?(fpath)
pkg/gren-0.0.4/lib/gren/findgrep.rb:39: unless FileTest.readable?(fpath)
pkg/gren-0.0.4/lib/gren/findgrep.rb:44: @result.size += FileTest.size(fpath)
pkg/gren-0.0.4/lib/gren/findgrep.rb:53: @result.search_size += FileTest.size(fpath)
pkg/gren-0.0.4/lib/gren/findgrep.rb:95: FileTest.directory?(fpath) &&
dir : /Users/ongaeshi/Documents/gren/pkg (0.01sec)
files : 32 in 36 (22.64KB in 48.54KB)
match : 2 files, 10 hit
Below the directory pkg/. It limits to the rb file and “FILE” is retrieved, that is, (file: 32 in 36 → file: 14 It is paid attention that it is in 36. )
% gren FILE -f "\.rb$"
pkg/gren-0.0.5/test/test_helper.rb:3:require File.dirname(__FILE__) + '/../lib/gren'
.
.
.
pkg/gren-0.0.4/lib/gren/cli.rb:3:require File.join(File.dirname(__FILE__), 'findgrep')
dir : /Users/ongaeshi/Documents/gren/pkg (0.1sec)
files : 14 in 36 (15.36KB in 48.54KB)
match : 12 files, 18 hit
–id ignore directory
% gren FILE -f "\.rb$" --id pkg
test/test_helper.rb:3:require File.dirname(__FILE__) + '/../lib/gren'
test/test_gren_cli.rb:1:require File.join(File.dirname(__FILE__), "test_helper.rb")
test/test_gren.rb:1:require File.dirname(__FILE__) + '/test_helper.rb'
lib/gren.rb:1:$:.unshift(File.dirname(__FILE__)) unless
lib/gren.rb:2: $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
lib/gren/findgrep.rb:3:require File.join(File.dirname(__FILE__), 'result')
lib/gren/findgrep.rb:7: IGNORE_FILE = /(\A#.*#\Z)|(~\Z)|(\A\.#)/
lib/gren/findgrep.rb:103: IGNORE_FILE.match(File.basename(fpath)) ||
lib/gren/cli.rb:3:require File.join(File.dirname(__FILE__), 'findgrep')
dir : /Users/ongaeshi/Documents/gren (0.01sec)
files : 7 in 17 (7.68KB in 11.32KB)
match : 6 files, 9 hit
–if ignore files
% gren FILE -f "\.rb$" --id pkg --if "test_.+\.rb$"
lib/gren.rb:1:$:.unshift(File.dirname(__FILE__)) unless
lib/gren.rb:2: $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
lib/gren/findgrep.rb:3:require File.join(File.dirname(__FILE__), 'result')
lib/gren/findgrep.rb:7: IGNORE_FILE = /(\A#.*#\Z)|(~\Z)|(\A\.#)/
lib/gren/findgrep.rb:103: IGNORE_FILE.match(File.basename(fpath)) ||
lib/gren/cli.rb:3:require File.join(File.dirname(__FILE__), 'findgrep')
dir : /Users/ongaeshi/Documents/gren (0.0sec)
files : 4 in 17 (7.07KB in 11.32KB)
match : 3 files, 6 hit
-i ignore case
% gren FILE -i -f "\.rb$" --id pkg --if "test_.+\.rb$"
lib/gren.rb:1:$:.unshift(File.dirname(__FILE__)) unless
lib/gren.rb:2: $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
lib/gren/result.rb:8: attr_accessor :match_file_count
.
.
.
lib/gren/cli.rb:16: opt.on('--if REGEXP', '--ignore-file REGEXP', 'Ignore file pattern.') {|v| option.ignoreFile = v}
dir : /Users/ongaeshi/Documents/gren (0.1sec)
files : 4 in 17 (7.07KB in 11.32KB)
match : 4 files, 53 hit
-l listing mode.
% gren FILE -l
test/test_helper.rb:3:require File.dirname(__FILE__) + '/../lib/gren'
.
.
--- search --------
test/test_helper.rb
test/test_gren_cli.rb
.
.
total: 49
--- match --------
test/test_helper.rb
test/test_gren_cli.rb
.
.
total: 30
--- ignore-file --------
pkg/gren-0.0.5.tgz
pkg/gren-0.0.5.gem
.
.
total: 4
--- ignore-dir --------
.git
total: 1
--- unreadable --------
total: 0
dir : /Users/ongaeshi/Documents/gren (0.01sec)
files : 49 in 53 (33.96KB in 59.86KB)
match : 30 files, 42 hit
The extra: It ego searches by my home directory
% cd ~
% gren ongaeshi
.
.
.
dir : /Users/ongaeshi (8m 52.45s)
files : 70237 in 153566 (713.45MB in 91.92GB)
match : 44 files, 162 hit
for Emacs:
for OSX
(global-set-key "\C-x\C-g" 'grep-find) ; your favarite key
(setq grep-find-command "gren ")
for Windows
(global-set-key "\C-x\C-g" 'grep-find) ; your favarite key
(setq grep-find-command "gren.bat ")
LICENSE:
MIT License