【Linux】grep 通过关键字过滤文本内容

说明

grep 通过关键字过滤文本内容

grep的过滤以行为单位,只要这一行中包含该关键字,则grep选取这一行,而不是单独选中这一个关键字

grep 支持:BREs、EREs、PREs 正则表达式

grep 指令后不跟任何参数,则表示要使用 ”BREs“
grep 指令后跟 ”-E" 参数,则表示要使用 “EREs“
grep 指令后跟 “-P" 参数,则表示要使用 “PREs"

方法

查找内容可以 用 字符、正则表达式

# 基本语法
grep [选项] 查找内容 源文件
# 选项
-i  忽略关键字的大小写
-n  显示关键字出现的行号

-r  递归查找 子目录中的文件
-l  只打印匹配的文件名

-c  只打印匹配的行数

-P  使用正则表达式匹配 数字 的时候 要加上

-o  仅显示查找到的关键字
-v  对关键字取反,也就是除了该关键字之外的所有行
-q  grep的静默模式,也就是不在屏幕上输出内容
-AX 显示过滤关键字的后x行内容
-BX 显示过滤关键字的前x行内容
-CX 显示过滤关键字的前后x行内容
--color=auto 给过滤的关键字显示高亮的颜色,在RHEL中已经默认设置

举例

在单个文件内 查找内容(显示行号)
# 案例:在  456.txt  文件中,查找  "zhon"  所在行,并且显示行号
[root@hn ~]# grep -n zhon 456.txt 
29:zhong
[root@hn ~]# grep -n Sec 1.txt 
1:Sec解决方案,在软件定义安全领域引入智能理念,为数字化企业构建全新的智能防护体系。
3:华为HiSec解决方案,引入针对虚拟化场景的安全控制器SecoManager,可协同软硬件的安全组件实现跨多云、多分支的统一安全业务编排与管理,保证全网策略一致性。
在整个文件夹内 查找内容(显示行号)
# 案例:在  /root  目录中,查找  "zhong"  所在行,并且显示行号
[root@hn ~]# grep -r -n zhong /root
/root/1111.txt:10:zhong
/root/456.txt:29:zhong
/root/.viminfo:103:? \<zhong\>
/root/.viminfo:104:|2,1,1713173059,,"\\<zhong\\>"
配合管道符 | 使用
[root@hn ~]# ll | grep pass
-rw-r--r-- 1 root root      15 Apr 25 11:29 passwd1.txt
-rw-r--r-- 1 root root      30 Apr 25 11:28 passwd.txt
[root@hn ~]# cat 1.txt | grep -n  智能理念
1:Sec解决方案,在软件定义安全领域引入智能理念,为数字化企业构建全新的智能防护体系。
[root@hn ~]# 
使用正则匹配

写正则的时候,要用 '' 引号,不然会有时候会出问题

[root@hn ~]# cat 456.txt | grep '[^1]'
22
3asc
4abc
5
6000addec:
7

grep中使用"\d"匹配数字不成功的原因【要加-P】

[root@hn ~]# grep -P '\d{2}' 456.txt
22
6000addec:
[root@hn ~]#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值