Multithreaded Alternative to grep
grep which is the most popular tool used to make regex searches on Linux systems, has been around for a while. The current implementation of grep is single-threaded and does not make use of modern multi-core systems. This is specially evident when the search is spread over a large number of files and directories. Thus, we plan to implement an improved version of grep which makes use of modern concurrency and parallelism.
clone the repository:
git clone "https://github.com/jatin-code777/Grape"
create directory for build
cd Grape mkdir build && cd build
build the project
cmake .. && make
sudo required to execute from any position.
sudo cp ./grape /bin/
grape [OPTION]... PATTERN [FILE]
Search for PATTERN in each FILE.
Example: grape -i 'hello world' main.c
Pattern selection and interpretation:
-F, --fixed-string {default}PATTERN is a normal string
-G, --basic-regexp PATTERN is a basic regular expression (default)
-e, --regexp=PATTERN use PATTERN for matching
-i, --ignore-case ignore case distinctions
Miscellaneous:
--version display version information and exit
--help display this help text and exit
--usage display usage text and exit
Output control:
-n, --line-number print line number with output lines
-r, --recursive recursive search inside directory
-L, --files-without-match print only names of FILEs with no selected lines
-l, --files-with-matches print only names of FILEs with selected lines
note:- gtest is required for normal cmake install . if you don't want to install gtest then remove CmakeList.txt and rename _CMakeLists.txt as CMakeLists.txt .