Answers for above questions usually came with [`ripgrep`](https://github.com/BurntSushi/ripgrep), though I don't think it is a **small** project, but yes, go for it if you are not afraid to delve deep a bit.
[This project](https://github.com/kyclark/command-line-rust) is for the book `Command-Line Rust(O'Reily)` ,it will show you how to write small CLIS( clones of head, cat, ls).
[This book](https://picklenerd.github.io/pngme_book/) will guide you to make a command line program that lets you hide secret messages in PNG files. The primary goal here is to get you writing code. The secondary goal is to get you reading documentation.