Linux基础grep、egrep和fgrep

grep、egrep和fgrep简介

三者之间的关系:grep -E 等同于 egrep,grep -F 等同于 fgrep。

命令是否支持正则支持的正则类型
grep☑️基本正则表达式
egrep☑️扩展正则表达式
fgrep✖️

grep简单示例

-> cat data4.txt
This is line number 1.
This is line number 2.
This is line number 3.
This is line number 4.
This is line number 11.
This is line number 6

# “--color”选项会将数字“1”和“11”会以红色标记出来
-> grep --color "1" data4.txt
This is line number 1.
This is line number 11.

# 管道的方式也可以实现和上面一样的效果
—> cat data4.txt | grep --color "1"
This is line number 1.
This is line number 11.

# "-v"选项实现反查效果
—> cat data4.txt | grep -v "1"
This is line number 2.
This is line number 3.
This is line number 4.
This is line number 6

-> cat -n data4.txt
     1  This is line number 1.
     2  This is line number 2.
     3  This is line number 3.
     4  This is line number 4.
     5  This is line number 11.
     6  This is line number 6

# "-n"选项显示行号
-> cat data4.txt | grep -n --color "1"
1:This is line number 1.
5:This is line number 11.

# "-c"选项显示到底搜索了多少行
-> cat data4.txt | grep -c "1"
2

# "-i"选项可以实现不区分字母的大小写
-> grep  "this" data4.txt
-> grep -i "this" data4.txt
This is line number 1.
This is line number 2.
This is line number 3.
This is line number 4.
This is line number 11.
This is line number 6

grep环顾四周

-> cat data5.txt
This is line number 1.
This is line number 2.
This is line number 3.
This is line number 4.
This is line number 5.
This is line number 6.

# "-A"选项是指目标数据下面的若干行,是After的缩写。“-A 1”表示展示匹配行下面一行的内容。
-> grep -A 1 5 data5.txt
This is line number 5.
This is line number 6.

# "-B"选项是指目标数据前面的若干行,是Before的缩写。“-B 1”表示展示匹配行上面一行的内容。
-> grep -B 1 5 data5.txt
This is line number 4.
This is line number 5.

# "-C"选项,是“-A”和“-B”选项的合体,除了展示匹配行之外,还展示出匹配行上面和下面各若干行。
# 示例中“-C 2”展示匹配行上面2行和下面2行的内容,最大行才6,所以只能展示到6了。
-> grep -C 2 5 data5.tx
This is line number 3.
This is line number 4.
This is line number 5.
This is line number 6.

grep处理多个文件

-> cat test1.txt
first
-> cat test2.txt
first second
-> cat test3.txt
third
# "-l"选项实现在多个文件中查找,返回文件名 
-> grep -l "first" *.txt
test1
test2

# "-L"选项实现反向操作
-> grep -L "first" *.txt
test3

grep中词的含义

-> cat test4
I love you.
My gloves are red.

# 在grep中,词一般是由字母、数字和下划线组成的,且词与词之间通常使用空格、制表符(tab)或换
# 行符(\n)分隔,所以查出来的结果不是我们所要的
-> grep love test4
I love you.
My gloves are red.

# "-w"选项实现这个功能
-> grep -w love test4
I love you.

# “<>”也可以实现这个功能,需要添加“\”
-> grep ' \<love\>' test4
I love you.

grep查询中的特殊字符的处理

-> cat test5.
This is a nice $&#^test.

-> grep '^test' test5

# 在fgrep眼里没有特殊字符,都是普通字符
-> fgrep '^test' test5
This is a nice $&#^test.
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值