You can use grep
to search for text inside files by specifying a search pattern and a file (or directory). The basic syntax is:
grep "search_term" file.txt
This command will look for the term "search_term" in the file called file.txt
and print out any matching lines.
Here are some practical ways to use grep
effectively depending on what you're trying to do.
Search for a word or phrase in a single file
If you want to find all occurrences of a specific word or phrase in a file, just type:
grep "error" log.txt
This will show every line in log.txt
that contains the word "error".
By default, grep
is case-sensitive. If you want to ignore case, add the -i
option:
grep -i "error" log.txt
Now it will match both "error", "Error", and "ERROR".
Also, if you want to know which lines matched, along with their line numbers, use the -n
flag:
grep -n "404" access.log
This helps when you're debugging logs or config files.
Search recursively through multiple files and directories
To search across all files in a directory and its subdirectories, use the -r
(or --recursive
) option:
grep -r "timeout" /var/www/
This will scan all files under /var/www/
for the word "timeout" and show the filename and matching line.
Combine this with --include
to only search specific file types:
grep -r "function_name" . --include="*.php"
This searches only .php
files in the current directory and below for the word "function_name".
Show more context around matches
Sometimes seeing just the matching line isn't enough. You can show a few lines before or after the match using:
-A 2
– shows 2 lines after the match-B 2
– shows 2 lines before-C 2
– shows 2 lines before and after
For example:
grep -C 3 "database error" app.log
This gives you 3 lines of context around each match, making it easier to understand what's going on without opening the whole file.
Get only filenames that contain a match
If you don’t care about the actual matching line but just want to know which files contain a term, use -l
:
grep -l "deprecated" *.js
This lists all .js
files in the current directory that have the word "deprecated" somewhere in them.
It’s useful when scanning large codebases for certain keywords or patterns.
That’s basically how you use grep
to search inside files. It's simple but powerful once you get used to the flags. You can chain options together too — like grep -rni
to combine recursive search, case-insensitive matching, and line numbers.
The above is the detailed content of How to use grep to search for text inside files?. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

When encountering DNS problems, first check the /etc/resolv.conf file to see if the correct nameserver is configured; secondly, you can manually add public DNS such as 8.8.8.8 for testing; then use nslookup and dig commands to verify whether DNS resolution is normal. If these tools are not installed, you can first install the dnsutils or bind-utils package; then check the systemd-resolved service status and configuration file /etc/systemd/resolved.conf, and set DNS and FallbackDNS as needed and restart the service; finally check the network interface status and firewall rules, confirm that port 53 is not

As a system administrator, you may find yourself (today or in the future) working in an environment where Windows and Linux coexist. It is no secret that some big companies prefer (or have to) run some of their production services in Windows boxes an

In Linux systems, 1. Use ipa or hostname-I command to view private IP; 2. Use curlifconfig.me or curlipinfo.io/ip to obtain public IP; 3. The desktop version can view private IP through system settings, and the browser can access specific websites to view public IP; 4. Common commands can be set as aliases for quick call. These methods are simple and practical, suitable for IP viewing needs in different scenarios.

Built on Chrome’s V8 engine, Node.JS is an open-source, event-driven JavaScript runtime environment crafted for building scalable applications and backend APIs. NodeJS is known for being lightweight and efficient due to its non-blocking I/O model and

Linuxcanrunonmodesthardwarewithspecificminimumrequirements.A1GHzprocessor(x86orx86_64)isneeded,withadual-coreCPUrecommended.RAMshouldbeatleast512MBforcommand-lineuseor2GBfordesktopenvironments.Diskspacerequiresaminimumof5–10GB,though25GBisbetterforad

Written in C, MySQL is an open-source, cross-platform, and one of the most widely used Relational Database Management Systems (RDMS). It’s an integral part of the LAMP stack and is a popular database management system in web hosting, data analytics,

Ubuntu has long stood as a bastion of accessibility, polish, and power in the Linux ecosystem. With the arrival of Ubuntu 25.04, codenamed “Plucky Puffin”, Canonical has once again demonstrated its commitment to delivering a

MongoDB is a high-performance, highly scalable document-oriented NoSQL database built to manage heavy traffic and vast amounts of data. Unlike traditional SQL databases that store data in rows and columns within tables, MongoDB structures data in a J
