← All commands
Topic hub Text Processing
Windows Linux Text Processing Expanded guide Search

Windows findstr /r (regex) equivalent in Linux

Searches text using extended regular expressions for complex pattern matching.

Windows findstr /r (regex)
→
Linux equivalents
Debian/Ubuntu same command
grep -E
Fedora same command
grep -E
Arch same command
grep -E

Overview

What this command does

On Windows, "findstr /r (regex)" is used to search using extended regular expressions. On Linux, the closest practical mapping shown here is "grep -E". Searches text using extended regular expressions for complex pattern matching. This reference is grouped under Text Processing → Search.

Migration tip: <code>grep -E</code> enables extended regex with <code>+</code>, <code>?</code>, <code>|</code>, and <code>()</code> without backslashes. Use <code>grep -P</code> for full Perl-compatible regex.

Windows → Linux context

What changes when you use this on Linux?

Equivalent task, different tool

Windows findstr /r (regex) maps to grep -E for this task. Treat this as a workflow mapping rather than a character-for-character syntax translation.

Portable across the compared distros

The Debian/Ubuntu, Fedora and Arch rows use the same command in this mapping. Package availability or defaults can still vary, so check the installed tool version when an option behaves differently.

Practical tasks

Common use cases

Search using extended regular expressions

Searches text using extended regular expressions for complex pattern matching.

grep -E 'pat1|pat2'

Match either pattern

grep -E '^[0-9]+'

Lines starting with digits

grep -oE '[0-9.]{7,15}'

Extract IP-like patterns

Ready to run

Copyable Linux commands

Review paths, device names, package names and permissions before running any command.

grep -E 'ERROR|WARN|CRIT' app.log
grep -oE '[0-9]{1,3}(\.[0-9]{1,3}){3}' access.log
grep -Ev '^#|^$' /etc/ssh/sshd_config

Walkthrough

Examples with explanations

# Windows: findstr /r "error\|warn" file.txt

# Match multiple patterns:
grep -E 'ERROR|WARN|CRIT' app.log

# Extract all IP addresses:
grep -oE '[0-9]{1,3}(\.[0-9]{1,3}){3}' access.log

# Config file without comments or blanks:
grep -Ev '^#|^$' /etc/ssh/sshd_config

Reference

Common options and variations

Command or optionUse
grep -E 'pat1|pat2'Match either pattern
grep -E '^[0-9]+'Lines starting with digits
grep -oE '[0-9.]{7,15}'Extract IP-like patterns
grep -Ev '^#|^$'Skip comment and blank lines

Distro differences

Debian/Ubuntu vs Fedora vs Arch

Debian/Ubuntu, Fedora and Arch all use "grep -E" for this mapping. The command syntax shown here is portable across the three rows, although installed versions and system defaults can still vary.

DistributionPackage manager / baseEquivalent commandDifference to notice
Debian/Ubuntu same command grep -E Same command on this distribution.
Fedora same command grep -E Same command on this distribution.
Arch same command grep -E Same command on this distribution.

Keep learning

Related Text Processing commands