巧技篇-Day28|火眼筛金:Windows Ctrl+F → grep 筛选文本内容(管道 | 配合)

0 次阅读 2026-10-27 11:49

📖 知识点

1. Windows Ctrl+F → Linux grep

 

 

WindowsLinux说明
Ctrl+F 搜索

grep 关键词 文件

在文件里找含关键词的行
搜索所有文件

grep -r 关键词 目录

在目录所有文件里找

grep 是 Linux 的 "火眼金睛":扫描文本,只把包含关键词的行筛出来显示,其余全部过滤掉。

💡 生活比喻一份长名单,你只想看 "姓张" 的人。grep 张 名单.txt 就像拿着放大镜快速扫过,只把含 "张" 的行挑出来 —— 金子里筛出金,其余不要。

2. 基本用法

 

grep 关键词 文件名      # 在文件里找含关键词的行

 

grep Python 笔记.txt     # 找出笔记里所有提到Python的行

 

3. 常用选项

 

 

选项作用

-i

忽略大小写(python/Python 都算)

-n

显示行号

-r

在目录里递归搜索所有文件

-c

只数有几行匹配

 

grep -i python 笔记.txt   # 不分大小写找
grep -n Python 笔记.txt   # 找并显示行号
grep -r Python .          # 在当前目录所有文件里找

 

4. 配合管道 | 组合(神技)

| 管道:把前一个命令的输出,交给后一个命令处理:

 

ps aux | grep python      # 从ps结果里筛出python进程
ls -l | grep 报告          # 从文件列表里筛出含"报告"的
find . -name "*.txt" | grep 笔记   # 先找txt再筛含"笔记"的

 

管道让命令 "接力":一个命令的 "输出" 变成下一个命令的 "输入"。这是 Linux 最强大的组合技之一。

⚠️ 易错提醒

  1. grep 区分大小写(Python 和 python 不同),用 -i 忽略

  2. grep 筛的是 "包含关键词的行",不是 "整个文件"

  3. 管道 | 的写法是 "命令 1 | 命令 2",把命令 1 的输出交给命令 2

⚔️ Kata 实战任务

任务需求:

  1. 创建 "笔记.txt",写入几行内容(其中几行含 "Python")

  2. 用 grep Python 笔记.txt 筛出含 Python 的行

  3. 用 grep -i python 笔记.txt 忽略大小写搜索

  4. 用 grep -n Python 笔记.txt 显示行号

  5. 用管道 ls -l | grep 笔记 从文件列表里筛,体会管道

参考代码(在终端依次敲)

 

# 准备一份"笔记"
cd ~
echo "今天学习Linux" > 笔记.txt
echo "重点练习Python命令" >> 笔记.txt
echo "明天复习grep" >> 笔记.txt
echo "Python真强大" >> 笔记.txt

# 1. 筛出含Python的行
grep Python 笔记.txt

# 2. 忽略大小写
grep -i python 笔记.txt

# 3. 显示行号
grep -n Python 笔记.txt

# 4. 管道:从文件列表里筛出含"笔记"的
ls -l | grep 笔记

 

运行示例:

 

user@linux:~$ grep Python 笔记.txt
重点练习Python命令
Python真强大

user@linux:~$ grep -i python 笔记.txt
重点练习Python命令
Python真强大

user@linux:~$ grep -n Python 笔记.txt
2:重点练习Python命令
4:Python真强大

user@linux:~$ ls -l | grep 笔记
-rw-r--r-- 1 user user 0 Oct 23 10:00 笔记.txt

 

🧠 思考题

  1. grep 筛出的是什么?-i 和 -n 分别起什么作用?

  2. 管道 | 的作用是什么?ps aux | grep python 里,两条命令分别做了什么、怎么接力?