
This particular use of the grep command doesn’t make much sense unless you use it with the -l (lowercase "L") argument as well.Note that in this case, quotes are required around my search pattern.
GREP PATTERN IP HOW TO
Since I tend to mark comments in my code with my initials ("aja") or my name ("alvin"), this recursive egrep command shows how to search for those two patterns, again in a case-insensitive manner: You can also perform recursive searches with the egrep command, which lets you search for multiple patterns at one time. In this example, the search is made case-insensitive by adding the -i argument to the grep command.

This next example shows how to recursively search two unrelated directories for the case-insensitive string "alvin": Your recursive grep searches don’t have to be limited to just the current directory. If you haven’t used commands like these before, to demonstrate the results of this search, in a PHP project directory I’m working in right now, this command returns a list of files like this:

As you’ll see below, you can also add -i for case-insensitive searches.The -l option (lowercase letter L) says “list only filenames”.The -r option says “do a recursive search”.However, I was just reminded that a much easier way to perform the same recursive search is with the -r flag of the grep command:Īs you can see, this is a much shorter command, and it performs the same recursive search as the longer command, specifically: This command can be read as, “Search all files in all subdirectories of the current directory for the string ‘alvin’, and print the filenames that contain this pattern.” It’s an extremely powerful approach for recursively searching files in all subdirectories that match the pattern I specify. Solution 1: Combine 'find' and 'grep'įor years I always used variations of the following Linux find and grep commands to recursively search subdirectories for files that match a grep pattern:įind. Two solutions are shown next, followed by some additional details which may be useful. He took the name from the ed command string g/re/p, which translates as "global regular expression search.Unix/Linux grep FAQ: How can I perform a recursive search with the grep command in Linux? Thompson spent about an hour that evening making his tool a general utility that could be used by others and renamed it as grep. He needed a tool that could search for phrases and strings within text files. McMahon was trying to identify the authors of the Federalist papers through textual analysis. His department head at Bell Labs, Doug Mcilroy, approached Thompson and described the problem one of his colleagues, Lee McMahon, was facing. Ken Thompson had extracted the regular expression search capabilities from the ed editor ( pronounced ee-dee) and created a little program - for his own use - to search through text files. The first two are bang on the third is slightly off. Thirdly, it was written overnight to satisfy a particular need. Secondly, the wealth of options can be overwhelming. The grep command is famous in Linux and Unix circles for three reasons. It also works with piped output from other commands. The Linux grep command is a string and pattern matching utility that displays matching lines from multiple files.
