Фильтрация текста с помощью `grep`
Освойте `grep` для мощного сопоставления с шаблонами и фильтрации текста в файлах или выводе команд.
«Фильтрация текста с помощью `grep`» — бесплатный урок Linux Command Line Mastery на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 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.txtSearching 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" *.logCase-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.txtFinding 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.pyCounting 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.logLocating 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`» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Linux Command Line Mastery, подпишись на CoddyKit PRO. Курс Linux Command Line Mastery содержит 4 уроков всего.
Чему я научусь в уроке «Фильтрация текста с помощью `grep`»?
Освойте `grep` для мощного сопоставления с шаблонами и фильтрации текста в файлах или выводе команд. Ты практикуешь Linux Command Line Mastery с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 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 — локальная установка не требуется.
Все уроки этого курса
- Стандартные потоки и перенаправление
- Фильтрация текста с помощью `grep`
- Обработка текста с помощью `sed` и `awk`
- Объединение и сортировка вывода с помощью sort, uniq и cut