Back

一个用 Rust 实现的简单的 grep,可以读取文件,匹配正则表达式。

思路

代码思路: 使用 regex 正则表达式库,env 读取 args 命令行参数。第1个参数为文件,第2个参数为正则表达式。

将正则表达式匹配到的行输出,并高亮匹配到的内容。同时显示所在行数。

如果没有第二个正则表达式参数,直接输出文件内容。

最后显示找的几行,几个符合正则表达式的字符串。

代码

Cargo.toml

[package]
name = "mygrep"
version = "0.1.0"
edition = "2021"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
regex = "1.5.5"
toml

src/main.rs

测试

没有进行单元测试,异常也是直接抛出。对这个程序影响不是很大。

test.txt

read
bluetooth
blur old false
bluetooth bluetooth bluetoothbluetooth
text
text.txt测试
text.txt测试

将 grep 路径加入操作系统的环境变量,然后就可以在终端中正常使用了。下面测试正则表达式的支持情况。

测试文件: https://www.ftls.xyz/posts/eshaas/index.md
结果:

正则表达式匹配和显示
正则表达式匹配和显示
Rust Simple Grep
https://www.ftls.xyz/posts/simple-grep/
Author 恐咖兵糖
Published at
Copyright CC BY-NC-SA 4.0