#search #command-line-tool #cli #file #string #grep #cargo

bin+lib perg

perg is a small command-line tool to search for given string inside a file

7 releases (4 breaking)

Uses old Rust 2015

0.5.1 Apr 28, 2020
0.5.0 May 16, 2019
0.4.0 Apr 20, 2019
0.3.0 Apr 20, 2019
0.1.0 Apr 18, 2019

#203 in #grep

Download history 25/week @ 2024-02-21 28/week @ 2024-02-28

53 downloads per month

MIT license

6KB
55 lines

perg

https://crates.io/crates/perg

A micro lightweight implementation of grep, written in Rust.

It's mainly for my journey to learn Rust programming language and its fascinated ecosystem, but feel free to use it. 😄

 perg --help
perg x.x.x
Vinh Nguyen <>
perg is a small command-line tool to search for given string inside a file

USAGE:
    perg [FLAGS] <PATTERN> <FILE>

FLAGS:
    -h, --help           Prints help information
    -i, --ignore-case    Perform case insensitive matching. Default is case sensitive.
    -V, --version        Prints version information

ARGS:
    <PATTERN>    pattern to search, can use regular expression
    <FILE>       path to file

Usage

a test.md is included in this repo:

$ cat test.md
hello world hi world bye world end of file Title

to try out perg on the included test.md file:

$ perg h test.md
    # hello world
    # hi world

perg also support regular expression search, like grep:

$ perg "h[ei]" test.md
    # hello world
    # hi world

$ perg "hello|bye" test.md
    # hello world
    # bye world

$ perg "^(be)" test.md
    # bye world
    # end of file

case insensitive search:

$ perg -i I test.md
    # hi world
    # end of file

Installation

Using Cargo via rustup:

$ curl https://sh.rustup.rs -sSf | sh

then install perg binary:

$ cargo install perg

Rust Books 🦀

As of now, Rust is one the most favorited programming according to StackOverflow. 🎁

Help, feedback or suggestions?

Feel free to contact me on Twitter for discussions, news & announcements & other projects. 🚀

What's with the name?

Glad you asked, perg is just the reversed of grep.

Dependencies

~2.8–4MB
~63K SLoC