标签: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 #
和上一个例子的结果正好相反,只要是包含一个数字,就不显示。
过滤掉所有以#开头的行
示例命令如下:
过滤掉所有空行和以#开头的行
示例命令如下:
标签:ott 格式 back gets line lib relative tool delete
原文地址:http://blog.51cto.com/13107353/2135247