0Pricing
Linux Command Line Mastery · บทเรียน

การกรองข้อความด้วย `grep`

เชี่ยวชาญ `grep` สำหรับจับคู่รูปแบบและกรองข้อความในไฟล์หรือผลลัพธ์จากคำสั่งอย่างทรงพลัง

การกรองข้อความด้วย `grep` เป็นบทเรียน Linux Command Line Mastery ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Linux Command Line Mastery และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Linux Command Line Mastery มีบทเรียนทั้งหมด 4 บทเรียน

บางส่วนของบทเรียนนี้ยังไม่ได้รับการแปล และแสดงเป็นภาษาอังกฤษ

What is `grep`?

Welcome to the world of text filtering! In this lesson, we'll master the mighty grep command.

grep stands for Global Regular Expression Print. It's a powerful command-line utility for searching plain-text data sets for lines that match a regular expression.

  • It helps you quickly find specific information in files.
  • It filters output from other commands.
  • It's indispensable for system administration, programming, and data analysis.

Your First `grep` Search

The most basic use of grep is to search for a specific word or pattern within a file.

The general syntax is: grep "pattern" filename

Let's find all lines containing the word "error" in a log file. Imagine my_log.txt contains various system messages.

echo "System started.
Error: Disk full.
Warning: Low memory.
Error: Network down." > my_log.txt
grep "Error" my_log.txt

Searching Multiple Files

grep isn't limited to a single file. You can search across multiple files or even all files in a directory.

To search multiple files, simply list them after the pattern. To search all files in the current directory, use a wildcard like *.

Let's search for "failed" in all .log files.

echo "Login success" > auth.log
echo "Login failed" > secure.log
echo "System OK" > kernel.log
grep "failed" *.log

Case-Insensitive Search (`-i`)

By default, grep is case-sensitive. This means "Error" is different from "error" or "ERROR".

To perform a case-insensitive search, use the -i option (for ignore-case).

Try finding all instances of "apple", regardless of how it's capitalized.

echo "Apple is good.
I like apples.
APPLES are red." > fruit.txt
grep -i "apple" fruit.txt

Finding What DOESN'T Match (`-v`)

Sometimes you want to see all lines that *do not* contain a specific pattern. This is called an inverted match.

The -v option (for invert-match) does exactly this. It shows all lines that *don't* match the given pattern.

Let's filter out lines that contain "comment" from a script.

echo "# This is a comment
print("Hello")
# Another comment
x = 10" > script.py
grep -v "#" script.py

Counting Occurrences (`-c`)

Instead of showing the matching lines, you might just want to know how many lines match your pattern.

The -c option (for count) tells grep to print only a count of the lines that match the pattern.

How many lines contain "warning" in our system log?

echo "Info: System started.
Warning: Low disk space.
Info: User logged in.
Warning: High CPU usage." > system.log
grep -c "Warning" system.log

Locating Matches with Line Numbers (`-n`)

When you're debugging or analyzing a large file, knowing the exact line number where a match occurs can be very helpful.

The -n option (for line-number) displays the line number before each matching line.

Let's find the line numbers for "function" in a program file.

echo "def setup():
  print("Setting up")
def run_function():
  pass
# Main part" > program.py
grep -n "function" program.py

`grep` with Standard Input

One of grep's most powerful features is its ability to work with pipes (|).

You can pipe the output of one command as input to grep, allowing you to filter command output in real-time.

Let's list all files and then filter to show only those ending with .txt.

touch report.txt document.pdf image.jpg notes.txt
ls -l | grep ".txt"

`grep` Quick Check

You've learned several useful grep options. Let's test your understanding!

Consider a file named server.log which contains messages like "ERROR", "Error", "info", etc.

Recap: Filtering with `grep`

Great job! You've mastered the fundamentals of grep for filtering text.

Here's a quick summary of what we covered:

  • grep "pattern" filename: Basic search for a pattern in a file.
  • grep "pattern" *.log: Search across multiple files using wildcards.
  • -i: Ignore case during the search.
  • -v: Invert the match, showing lines that *don't* contain the pattern.
  • -c: Count the number of matching lines.
  • -n: Display line numbers for matching lines.
  • Piping with |: Filter output from other commands.

These options make grep an incredibly versatile tool for extracting and analyzing information on the command line. Keep practicing!

คำถามที่พบบ่อย

บทเรียน “การกรองข้อความด้วย `grep`” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การกรองข้อความด้วย `grep`” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Linux Command Line Mastery ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Linux Command Line Mastery มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การกรองข้อความด้วย `grep`”

เชี่ยวชาญ `grep` สำหรับจับคู่รูปแบบและกรองข้อความในไฟล์หรือผลลัพธ์จากคำสั่งอย่างทรงพลัง คุณปฏิบัติ Linux Command Line Mastery ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Linux Command Line Mastery หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Linux Command Line Mastery บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “การกรองข้อความด้วย `grep`” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Linux Command Line Mastery นี้ได้ไหม

ได้ บทเรียน Linux Command Line Mastery ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. สตรีมมาตรฐานและการเปลี่ยนเส้นทาง
  2. การกรองข้อความด้วย `grep`
  3. การจัดการข้อความด้วย `sed` และ `awk`
  4. การรวมและเรียงลำดับผลลัพธ์ด้วย sort, uniq และ cut
← กลับไปที่ Linux Command Line Mastery