1 个不稳定版本

0.1.1 2023年7月21日

#13#line-search

MIT 许可协议

23KB
488 代码行

grepr

Rust

在 Rust 中实现的 grep 的最小版本。

概述

grepr 是一个简单的命令行搜索工具。搜索字符串和文件路径作为参数输入,还可以使用一些可选参数来微调搜索。程序会遍历指定文件中的每一行,并返回任何与搜索条件匹配的行。

选项

可选参数可以通过 --help 标志显示。

$ grepr --help
A simple to use command line search tool, à la grep.

Usage: mgrep [OPTIONS] <QUERY> <PATH>

Arguments:
  <QUERY>  Search query
  <PATH>   File path

Options:
  -i, --ignore-case   Ignores case whiles searching
  -v, --invert-match  Inverst search results
  -w, --word          Matches exact words only
  -l, --line          Matches exact lines only
  -h, --help          Print help
  -V, --version       Print version

示例

一个简单的搜索示例。

$ grepr sunbeam tests/pale_blue_dot.txt

test/pale_blue_dot.txt
11: on a mote of dust suspended in a sunbeam.

搜索精确单词。在这种情况下,任何非字母数字字符都被忽略。

$ grepr "in" tests/pale_blue_dot.txt -w

test/pale_blue_dot.txt
6: civilization, every king and peasant, every young couple in love, 
9: "superstar," every "supreme leader," every saint and sinner in 
11: on a mote of dust suspended in a sunbeam.

反转搜索结果。返回所有未匹配的行。

$ grepr a tests/pale_blue_dot.txt -v

test/pale_blue_dot.txt
1: On it everyone you love, everyone you know, everyone you ever 
10: the history of our species lived there--
12: 

依赖项

~3–14MB
~128K SLoC