Linux从放弃到入门:grep

本文首发于我的公众号码农之屋(id: Spider1818),专注于干货分享,包含但不限于Java编程、网络技术、Linux内核及实操、容器技术等。欢迎大家关注,二维码文末可以扫。


一、简介

grep是一种搜索类命令,用于过滤或搜索特定字符,可搭配正则表达式使用。grep家族还包括了egrep和fgrep。

 

二、命令格式

grep [option] pattern file == grep[参数] [匹配模式] [查找的文件]

 

三、常用option

option

说明

-c

显示符合条件的行数

-i

查询时忽略大小写

-o

只显示匹配pattern部分

-n

显示符合条件的行标号

-r

当查询对象非文件而是目录,则需使用该参数,用于递归查询

-v

显示不匹配条件的行

-E

grep -E = egrep,除了基本正则表达式外,还可以使用扩展正则表达式

-F

grep -F = fgrep,使用任何正则表达式中的元字符表示其自身字面意义,不再特殊

--color=auto

将匹配信息用颜色标亮

备注:

1)pattern如果是表达式或超过2单词,则需用引号进行引用。可用单引号和双引号,区别在于单引号看到的是什么就是什么,不管是常量还是变量都不会发生替换。

2)其他选项请man grep命令进行查询。

 

四、grep示例

 

示例文本信息:

root@LTY:/opt# cat test.txt

littletangyuan test1

abcdefg

LittleTangyuan

hijklmn

littletangyuan test2

opqrst

LITTLETANGYUAN

uvwxzy

LittleTangyuan

[A-Z]...[0-9]

 

1)统计包含字符串`little tangyuan`的行数

root@LTY:/opt# grep -c "little tangyuan" test.txt

2

2)不区分被搜索字符串大小写,找出包含字符串`little tangyuan`的行

root@LTY:/opt #grep -i "little tangyuan" test.txt

little tangyuantest1

Little Tangyuan

little tangyuantest2

LITTLE TANGYUAN

Little Tangyuan

3)找出包含字符串`tangyuan`,并只显示匹配部分

root@LTY:/opt #grep -o "tangyuan" test.txt

tangyuan

tangyuan

4)找出包含字符串`little tangyuan`的行,将匹配信息标亮

root@LTY:/opt #grep --color=auto "little tangyuan" test.txt

little tangyuantest1

little tangyuantest2

5)找出包含字符串`little tangyuan`的行,并打印匹配行号

root@LTY:/opt #grep -n "little tangyuan" test.txt

1:littletangyuan test1

5:littletangyuan test2

6)搜索当前目录文件,找出包含字符串`little tangyuan`的行

root@LTY:/opt #grep -r "little tangyuan" ./

./test.txt:littletangyuan test1

./test.txt:littletangyuan test2

7)找出不包含字符串`little tangyuan`的行

root@LTY:/opt #grep -v "little tangyuan" test.txt

abcdefg

Little Tangyuan

hijklmn

opqrst

LITTLE TANGYUAN

uvwxzy

Little Tangyuan

8)在test.txt里找到字符`l`开头的行

root@LTY:/opt #grep "^l" test.txt

little tangyuantest1

little tangyuantest2

9)找出所有包含little或Little的行

root@LTY:/opt #egrep "little|Little" test.txt

little tangyuantest1

Little Tangyuan

little tangyuantest2

Little Tangyuan

10)找到和字符串`[A-Z]...[0-9]`匹配的行,其中[A-Z]/.../[0-9]没有转义

root@LTY:/opt #fgrep "[A-Z]...[0-9]" test.txt

[A-Z]...[0-9]

 

我的公众号「码农之屋」(id: Spider1818) ,分享的内容包括但不限于 Linux、网络、云计算虚拟化、容器Docker、OpenStack、Kubernetes、SDN、OVS、DPDK、Go、Python、C/C++编程技术等内容,欢迎大家关注。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值