How to limit the number of results returned from grep in Linux?

The grep command in Linux is a powerful text search utility used to filter and search for specific patterns in files. When working with large files or datasets, you may want to limit the number of results returned to make the output more manageable and focused.

The grep command searches for lines containing a specified pattern (regular expression) and displays matching results. By default, it returns all matching lines, but Linux provides several options to limit and control the output.

Syntax

grep [options] pattern [files]

Common Grep Options

Option Description
-c Display only a count of matching lines
-h Display matched lines without filenames
-i Ignore case when matching
-l Display only filenames containing matches
-n Display matched lines with line numbers
-v Display lines that do NOT match the pattern
-m NUM Stop after NUM matching lines

Limiting Results with the -m Option

The most direct way to limit grep results is using the -m option followed by a number. This tells grep to stop searching after finding the specified number of matches.

grep -m 5 "pattern" filename.txt

This command will return only the first 5 matching lines and then stop searching.

Examples

Basic Pattern Search

Let's create a sample file to demonstrate limiting results −

cat sample.txt
orange apple is great together
apple not great
is apple good
orange good apple not
apple juice is tasty
orange and apple combo

Finding Lines with Both 'orange' and 'apple'

grep 'orange' sample.txt | grep 'apple'
orange apple is great together
orange good apple not
orange and apple combo

Limiting Results to First Match Only

grep -m 1 'orange' sample.txt | grep 'apple'
orange apple is great together

Limiting Results in Recursive Search

When searching recursively through directories, use -m to limit results per file −

grep -rni -m 2 "func main()" *

This command searches for "func main()" recursively, ignoring case, showing line numbers, but limiting to 2 matches per file.

Alternative Methods to Limit Output

Using head Command

Combine grep with head to limit total output lines −

grep "apple" sample.txt | head -3

Using tail Command

Get only the last few matches −

grep "apple" sample.txt | tail -2

Practical Use Cases

  • Log file analysis − Limit error messages to recent occurrences

  • Large dataset processing − Get sample results without overwhelming output

  • Configuration file searches − Find first occurrence of settings

  • Code debugging − Locate specific function calls efficiently

Conclusion

Limiting grep results using the -m option provides efficient control over search output, preventing overwhelming results when working with large files. This technique is essential for focused text processing and system administration tasks in Linux environments.

Updated on: 2026-03-17T09:01:38+05:30

1K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements