Linux - Grep 命令

grep 时使用最广泛的命令之一,用来对文本文件内荣按行进行模式匹配查找。啊如果找到匹配模式的行, grep 将打印包含模式的行。

Grep 有三种变形:

  1. Grep :标准 grep 命令主要讨论此格式。
  2. Egrep 扩展 grep ,支持基本及扩展的正则表达式
  3. Fgrep :快速 grep ,允许查找字符串而不是一个模式。这里的快速并不是速度快

Grep 的用法

1)       grep Usage: grep [OPTION] regular_expressions [filename1 …]

regular_expressions: 是正则表达式,一般用单引号吧正则表达式括起来。当然,也可以不使用正则表达式而使用字符串,使用字符串时一般用双引号把字符串括起来。

Filename1…: 文件名列表, grep 将对这些路指定的而文件的内容进行匹配查找,如果文件名列表省略, grep 将从标准化输入读取要匹配查找的内容。

2 grep 的常用选项

-c 只输出匹配的行的总数( count

-i 不区分大小写(只是用与单字符)。

-h 查询多个文件时,不显示文件名。

-l 显示匹配的行及行号

-s 不显示不存在或无匹配文件等错误信息( silence )。

-v 直线式不包含匹配模式的行。,

 

grep 应用举例:

1)       查询多个文件,可以使用 * 。比如:

grep sort *.doc // 在所有以 doc 为后缀的文件中查找字符串“ sort ”;

grep linux * // 在当前目录下的所有文件中查找字符串“ linux

2 精确匹配,可以在要匹配的字符串后加 />

grep “48/>” data.f // 可以匹配 48 1248 c48this 等不能匹配 481 c480

3 反转匹配

ps aux|grep “httpd”|grep –v “grep”// 查看正在运行的 httpd 进程

4 匹配空行

grep –n ‘^$’ myfile // 打印文件中空行的行号

grep –v ‘^$’ myfile // 去除文件中空行的行号

 

 

grep 可以使用或匹配模式的类名形式

1)   常见的匹配模式的类名形式

[[:upper:]] 等价于 [A-Z]

[[:lower:]] 等价于 [a-z]

[[:digit:]] 等价于 [0-9]

[[:alnum:]] 等价于 [0-9a-zA-Z]

[[:space:]] 等价于空格或 tab

[[:alpha:]] 等价于 [a-zA-Z]

2) 举例: grep ‘5[[:upper:]][[:upper:]]’ data.f // 可以匹配包括 5AP196 5DF540 的行

 

可以把要匹配的模式写到一个文件中,然后使用 -f 选项,将该未能传给 grep

Eg egrep –f grappats data.f // 要匹配的模式存放在温江 grappats

 

可以在 grep 的模式字符串中使用 (|) ,意即“ | ”符号两边之一或全部,可以使用人一多“ | ”,可以同时使用 ^ 符号排除字符串

Eg who|grep ‘(zqf|zqc|zqx)’ // 查看是否 zqf zqc zqx 三者中是否有在线的

 

如果传递给 grep 的文件名参数是不是一个普通文件而不是一个目录的话,要使用 ”-d” 选项。

1)     Usage grep –d [ACTION] directory_name

2)     ACTION:ACTION 用来指定作为输入文件的目录文件的处理方式, AXTION 3 个可选项: read :把目录文件当作普通文件来读取,是选项省略时的默认方式; skip :目录将被忽略而跳过; recurse grep 以递归的方式读取命令下的每一个文件。等同于选项“ -r ”。

3)     举例 grep –r|”etho” /etc // 查看 /etc 目录中于“ eth0 ”有关的文件的文件名

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值