grep命令笔记

grep

grep是“global search regular expression and print out the line”的简称,意思是全面搜索正则表达式,并将其打印出来

这个命令可以结合正则表达式使用,它也是linux使用最为广泛的命令之一

grep命令的选项用于对搜索过程的补充,而其命令的模式十分灵活,可以是变量、字符串、正则表达式。

注意:一当模式中包含了空格,务必要用双引号将其引起来

grep

  • 作用
    • 按条件过滤文件内容
  • 使用格式
    • grep [option] "PATTERN" 文件名称
      • PATTERN 模式
        • 条件
        • 由普通字符、正则表达式组成的条件

参考实例

1、grep基本使用

[root@hosta ~]# grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

 

  • grep命令的默认行为,某一行中带有符合条件的内容,整行都会显示

1)支持多文件查询并支持使用通配符

[root@hosta ~]# grep a /opt/file* /etc/hosts
/opt/file01:ssadasdasdasdasdasdxxxxx
/opt/file01:sdsssssqwertyuiopasdfghjklzxcvbnms
/opt/file3:sdasdasdasxqweqweqwwerweioturywrtyuirnmcvbxcnmvcx,mwhwjwjwwj
/etc/hosts:127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
/etc/hosts:::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

 

常用参数:

-i

搜索时,忽略大小写

-c

只输出匹配行的数量

-l

只列出符合匹配的文件名,不列出具体的匹配行

-n

列出所有的匹配行,显示行号

-h

查询多文件时不显示文件名

-s

不显示不存在、没有匹配文本的错误信息

-v

显示不包含匹配文本的所有行

-w

匹配整词

-x

匹配整行

-r

递归搜索

-q

禁止输出任何结果,已退出状态表示搜索是否成功

-b

打印匹配行距文件头部的偏移量,以字节为单位

-o

与-b结合使用,打印匹配的词据文件头部的偏移量,以字节为单位

2)输出匹配字符串 行的数量:

[root@hosta ~]# grep -c wj /opt/file*
/opt/file1:1
/opt/file10:0
/opt/file2:1

 

3)列出所有的匹配行,并显示行号:

[root@hosta ~]# grep -n wj /opt/file*
/opt/file1:1:wjwjwjwjwjwjwjw
/opt/file2:2:sdwj
/opt/file3:3:hwjwjwwj
/opt/file3:4:wjwjwj

 

4)显示不包含模式的所有行:

[root@hosta ~]# grep -vc wj /opt/file*
/opt/file1:0
/opt/file10:0
/opt/file2:2
/opt/file3:2

 

5)不再显示文件名:

[root@hosta ~]# grep -h wj /opt/file*
wjwjwjwjwjwjwjw
sdwj
hwjwjwwj
wjwjwj

6)只列出符合匹配的文件名,不列出具体匹配的行:

[root@hosta ~]# grep -l wj /opt/file*
/opt/file1
/opt/file2
/opt/file3

7)不显示不存在或无匹配的文本信息:

[root@hosta ~]# grep -s wj /opt/file1 file_1
/opt/file1:wjwjwjwjwjwjwjw
[root@hosta ~]# grep  wj /opt/file1 file_1
/opt/file1:wjwjwjwjwjwjwjw
grep: file_1: 没有那个文件或目录

 

8)匹配整词,以字面意思去解释他,相当于精确匹配:

[root@hosta ~]# grep w* /opt/file1
wjwjwjwjwjwjwjw

9) 查找一个文件中的空行和非空行:

[root@hosta ~]# grep -c ^$ /opt/file2
1
[root@hosta ~]# grep -c [^$] /opt/file2
2

 

10) 匹配任意或重复字符用“.”或“*”符号来实现:

[root@hosta ~]# grep w.j /opt/file3
hwjwjwwj
[root@hosta ~]# grep w* /opt/file2
qwertyuikoodsfghjkpxcvbsadsad
sdwj

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值