码迷,mamicode.com
首页 > 其他好文 > 详细

grep/egrep工具的使用

时间:2018-07-03 00:13:32      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:ott   格式   back   gets   line   lib   relative   tool   delete   


grep/egrep工具的使用

该命令的格式为:grep [-cinvABC] 'word' filename,常用命令如下:

  • -c:表示打印符合要求的行数。

  • -i:表示忽略大小写。

  • -n:表示输出符号要求的行及其行号。

  • -v:表示打印不符和要求的行。

  • -A:后面跟一个数字(有无空格都可以),例如-A2表示打印符合要求的行以及下面两行。

  • -B:后面跟一个数字,例如-B2表示打印符合要求的行以及上面两行。

  • -c:后面跟一个数字,例如-C2表示打印符合要求的行以及上下各两行。

首先看看-A、-B、和-C这3个选项的用法。

-A2会把包含halt的行以及这行下面的两行都打印出来:

[root@localhost ~]# grep -A2 'halt' /etc/passwd
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin

grep默认帮我们把匹配到的字符串标注了红色。

-B2会把包含halt的行以及这行上面的两行都打印出来:

[root@localhost ~]# grep -B2 'halt' /etc/passwd
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt

-C2:会把包含halt的行以及这行上下的两行都打印出来:

[root@localhost ~]# grep -C2 'halt' /etc/passwd
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin

过滤出带有某个关键词的行,并输出行号。

示例命令如下:

[root@localhost ~]# grep -n 'root' /etc/passwd
1:root:x:0:0:root:/root:/bin/bash
10:operator:x:11:0:operator:/root:/sbin/nologin

前面的数字显示为绿色,表示行号。

过滤出不带有某个关键词的行,并输出行号。

[root@localhost ~]# grep -n 'root' /etc/passwd
1:root:x:0:0:root:/root:/bin/bash
10:operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost ~]# grep -nv 'nologin' /etc/passwd
1:root:x:0:0:root:/root:/bin/bash
6:sync:x:5:0:sync:/sbin:/bin/sync
7:shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
8:halt:x:7:0:halt:/sbin:/sbin/halt

过滤出所有包含数字的行 示例命令如下:

[root@localhost ~]# grep '[0-9]' /etc/inittab
# multi-user.target: analogous to runlevel 3
# graphical.target: analogous to runlevel 5

只要有一个数字就算匹配到了

过滤出所有不包含数字的行 示例命令如下:

[root@localhost ~]# grep -v '[0-9]' /etc/inittab
# inittab is no longer used when using systemd.
#
# ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# Ctrl-Alt-Delete is handled by /usr/lib/systemd/system/ctrl-alt-del.target
#
# systemd uses 'targets' instead of runlevels. By default, there are two main targets:
#
#
# To view current default target, run:
# systemctl get-default
#
# To set a default target, run:
# systemctl set-default TARGET.target
#

和上一个例子的结果正好相反,只要是包含一个数字,就不显示。

过滤掉所有以#开头的行

示例命令如下:

过滤掉所有空行和以#开头的行

示例命令如下:


grep/egrep工具的使用

标签:ott   格式   back   gets   line   lib   relative   tool   delete   

原文地址:http://blog.51cto.com/13107353/2135247

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!