
type f \( -name "*cache" -o -name "*xml" -o -name "*html" \)
#HOW TO SEARCH MULTIPLE FILES IN UNIX HOW TO#
To help you see how to expand this from finding two filename patterns to finding even more filename patterns with one find command, here's an example of how to search for three different files extensions with one find command:įind. Linux find multiple filenames command: finding three filename extensions I've tested this 'find multiple' command on several Unix systems, and it should work on all systems that support the Bash shell, including vanilla Unix, Linux, BSD, freeBSD, AIX, Solaris, and Cygwin. If you’re familiar with common Linux find commands, the only magic here is (a) using the "-o" option to say "or", and (b) escaping the parentheses with the backslash character. Here's a Linux find command that shows how to find multiple filenames at one time, in this case all files beneath the current directory ending with the filename extensions ".class" and ".sh":įind. Linux find multiple filenames command - two filename patterns In short, the solution is to use the find command's "or" option, with a little shell escape magic. You can use the Linux find command to find multiple filename patterns at one time, but for most of us the syntax isn't very common. Unix/Linux find command FAQ: How can I write one Unix find command to find multiple filenames (or filename patterns)? For example, I want to find all the files beneath the current directory that end with the file extensions ".class" and ".sh". To output a list of file names that do not contain a matching word or pattern, use the -L or -files-without-match flags.Help keep this website running at ! grep -l -r "student1" /var/logs Show file names without matches To output only file names that contain a matching word or pattern, use the -l or -files-with-matches flags in your command. Grep can output file names only, if you are more interested in finding files with a matching word or pattern inside of them. grep -I -r "student1" /opt/myapp Show only file names of matches If you find yourself wanting to match files from a directory or nested directory, you may want to exclude binary files in your search. grep -v "error" /var/log/apache2 Ignore Binary Files To perform inverse matches with grep use the -v flag.įor example, if you wanted to return all log entries except errors, you would use the following command. grep -c "error" /var/logs/apache2 Inverse Matches with GrepĪn inverse match returns results that do not match a word or pattern used with grep.

Grep supports counting matches with the -c flag. You may be more interested in knowing the number of matches rather than outputting the matches to file or screen. grep 'warning|error' /var/log/apache2 Counting Matches with Grep Each word separated by that character will be matched separately.įor example, to find the words “warning” or “error” in the output of all of your Apache web server logs, you would run the following command. To search multiple words, use the | character as a delimination. Multiple words can be matched against using grep, which is very useful when you’re not sure what you are looking for or want to find multiple items. grep -r "error" /var/logs Grep Searching Multiple Words To perform a recursive search, where grep finds a string in files of all nested, child directories, you can use the -r or -R flags. The grep command will not recursively search directories by default.

grep -i Student1 ~/class/students Recursive Directory Searches If do not know the case or want to find all cases, you add the -i flag. It search for using the exact case specified at the command-line.

Grep will search each file and output the matching line from each. The grep command allows us to chain multiple files into our search by adding them at the end of the command.įor example, to find the world hello in the files file1, file2, file3 and file4, we would run the command as follows. You may find yourself wanting to search multiple files for a matching string. grep "hello" file.txt Multiple File Grep Search For example, to find the word hello in a file named file.txt we would run the following command. To find a word inside of a single file we specify the word we want matched and file to search. It is used to search a single file or an entire directory, including child directories, for a matching string. The grep command in Linux is a utility used to search any given input files for one or more matching words or patterns. In this tutorial, you will learn how to use the grep command in Linux, Unix and OSX, with examples of common use cases.
