Tools that work with ack AckMate. Users of TextMate, the programmer's editor for the Mac, can use the AckMate plugin by Trevor Squires:. TextMate users know just how slow its 'Find in Project' can be with large source trees.
Grep is an application for loading and searching through large text files. Interpret text documents in any encoding supported by Mac OS X Highly optimized loading and matching of very large text files Support for textual and regular expression (PCRE) matching Threaded loading and matching to keep UI responsive at all times. An application providing superior performance for loading and searching through large text files Interpret text documents in any encoding supported by Mac OS X Highly optimized loading and matching. Grep Lines web developer and programmer tools World's simplest string grep. Just paste your text in the form below, press Grep Text button, and you get lines that match the regular expression.
AckMate
Users of TextMate, the programmer's editor for the Mac, can use the AckMate plugin by Trevor Squires:
TextMate users know just how slow its 'Find in Project' can be with large source trees. That's why you need 'ack-in-project' — a TextMate bundle that uses the super-speedy 'ack' tool to search your code FAST. It gives you beautiful, clickable results just as fast as 'ack' can find them. Check it out at: https://github.com/protocool/ackmate
ack.vim
ack.vim provides an interface between ack and vim. For example, you can call :Ack foo
, which will run ack and load ack's results into a vim buffer for manipulation and navigation.
ack.vim is available at the official vim website at https://www.vim.org/scripts/script.php?script_id=2572
ack2vim
Grep Gui Macos
ack2vim eases the interface beween ack and vim, so that ack's findings can be found with vim as well.
Emacs integration
There are at least four different Emacs modes for supporting ack here at the Emacs Wiki: https://www.emacswiki.org/emacs/Ack
Note: Be careful of any solution that defaults you to using --all, since that option no longer exists in ack 2.
hhighlighter
hhlighter is a wrapper around ack to make it easy to highlight words in a file. Invoke it like
cat file | h foo bar batand each of the three words 'foo', 'bar' and 'bat' will be highlighted as a different color. See https://github.com/paoloantinori/hhighlighter
There are many ways to search source code that are more flexible and tuned to programmers than straight grep
. I suggest you take a look at some of these alternatives, for they may suit your needs better than ack. If you have any suggestions to add to this list, please let me know at andy@petdance.com or submit an issue at https://github.com/petdance/beyondgrep/issues.
ag, the Silver Searcher
Geoff Greer says 'ag is like ack, but better. It's fast. It's damn fast. The only thing faster is stuff that builds indices beforehand, like Exuberant Ctags.' Geoff has also created a fork of AckMate that uses Ag instead of ack.
cgrep
Cgrep is a grep tool suitable for searching in large code repositories. It supports 30 programming languages and searches that go beyond the simple pattern matching. It enables context-aware filtering and semantic searches through wildcard and combinators.
grab
grab is another faster grep alternative that tries to use multiple cores. It also uses parallel processing, mmap and other speedy tricks behind the scenes.
glark
The biggest departure from ack, glark adds many more features like the ability to AND and OR your patterns. It's written in Ruby.
greple
greple is a search tools that lets you search for multiple keywords at a time.
grin
'A grep program configured the way I like it', written in Python by Robert Kern.
kaki
kaki is inspired by ack, and built on top of nodejs.
nak
An implementation of ack, written in Node.js. It has inspiration from Ag, and is optimized for speed, not features. It's completely asynchronous. Written by Garen J. Torikian.
paragrep
paragrep is a text search tool that operates at the paragraph level.
pcregrep
pcregrep looks like it's just a regular grep, but with a PCRE regex engine.
pss
pss is an ack clone written in Python by Eli Bendersky. It's written in pure Python with no additional modules necessary.
pt, the Platinum Searcher
Grep Application Mac
The Platinum Searcher is another code search tool similar to ack and ag. It supports multi platforms and multi encodings.
rak
A straight clone of ack, with some visual tweaks, written in Ruby by Daniel Lucraft.
ripgrep
ripgrep is written in Rust and claims to be 'faster than everything else'.
sift
sift is a search tool written in Go. It claims to be very faster, faster than ag.
spot
spot is a tiny search utility that adapts some of ack's features. It's simple and uses find+grep+awk.
UniversalCodeGrep (ucg)
A fast ack-like search tool that is written in C++ using PCRE and makes use of concurrency.
vack
vack is visual ack for the Mac.
Sometimes when you're looking at a large codebase, it makes sense to see everything as a whole. An indexing tool may help you out.
ctags
ctags is a program almost as old as time itself. When run against a codebase, ctags indexes various elements of the code, such as variables and functions. This lets your editor or other tools use the tags index to jump quickly to that element.
The most common ctags implementation is Exuberant ctags: http://ctags.sourceforge.net/
cscope
Cscope is a developer's tool for browsing source code. Cscope was part of the official AT&T Unix distribution for many years, and has been used to manage projects involving 20 million lines of code. It also can integrate with vim and Emacs.
CodeQuery
CodeQuery indexes and queries C, C++, Java and Python source code. It builds upon the databases of cscope and ctags, mentioned above, and provides a nice GUI tool.Code Search
Russ Cox, the guy that wrote Google's CodeSearch engine, wrote an article about how it worked and released an implementation in Go.
OpenGrok
OpenGrok is a fast and usable source code search and cross reference engine. It helps you search, cross-reference and navigate your source tree.
GNU GLOBAL
GNU GLOBAL is a source code tagging system that works the same way across diverse environments (emacs, vi, less, bash, web browser, etc). You can locate objects in source files and move there easily. It is similar to ctags or etags but is different from them at the point of independence of any editor.
beagrep
Beagrep is a combination of a desktop search engine named beagle and grep. Use the search engine first, then use grep on the small subset of possibly matching files, thus it is very fast and useful for code reading in huge source trees.
Hound
Hound provides a centralized web front-end to a regex-searchable text index of multiple Git repositories. It was created by engineers at Etsy to handle searching across codebases.
The grep
command in Linux is widely used for parsing files and searching for useful data in the outputs of different commands.
The findstr
command is a Windows grep
equivalent in a Windows command-line prompt (CMD).
In a Windows PowerShell the alternative for grep
is the Select-String
command.
Below you will find some examples of how to “grep” in Windows using these alternatives.
Grep Command in Windows
Grep the output of a netstat
command for a specific port:
If a command in PowerShell returns some objects, before parsing, they should be converted to strings using the Out-String -Stream
command:
Grep a file for a pattern that matches a regular expression (case insensitive):
Display help
for the Windows grep
command equivalents: