Most of the existing tools for searching through large amounts of text are either fast but inflexible (the original grep) or slightly more flexible but slow or complicated to install.
sift is an alternative that aims for both speed and flexibility - i.e. adding features while trying to reach (or even surpass) the performance of the original grep.
The additional features include
gitignore
support,
conditions
(e.g. match A only when preceded by B within X lines)
, full
multi-core
support and
multiline
matching.
sift is not tailored towards a specific use case, but you can
customize
it to your needs through a global or local configuration file.
If you want sift to ignore case, show line numbers, skip binary files and understand .gitignore files by default, just execute
sift -i -n --binary-skip --git --write-config
and you are done.
Please see the features and samples to get a better impression of what you can do with sift.
The goals and design principles of sift are documented here to give a better idea of what to expect from sift.