标签:for mask 养成 ons 扩展正则表达式 inux str exp inet6
1、过滤文本内容 ---- grep
1.作用
Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expr
ession Print,表示全局正则表达式版本,它的使用权限是所有用户。
2.格式
grep [options]
3.主要参数
[options]主要参数:
-c:只输出匹配行的计数。
-i:不区分大 小写(只适用于单字符)。
-h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。
-n:显示匹配行及 行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所有行。
pattern正则表达式主要参数:
\: 忽略正则表达式中特殊字符的原有含义。
^:匹配正则表达式的开始行。
$: 匹配正则表达式的结束行。
\<:从匹配正则表达 式的行开始。
\>:到匹配正则表达式的行结束。
[ ]:单个字符,如[A]即A符合要求 。
[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
。:所有的单个字符。
* :有字符,长度可以为0。
选项说明:
grep -A 1 root /etc/passwd
grep -B 1 root /etc/passwd
grep -C 1 root /etc/passwd
正则表达式Regex
匹配单个字符的元字符
1) . 任意单个字符
[root@localhost ~]# grep "r..t" /etc/passwd
2) [a1b] 方括号任意一个字符
[root@localhost ~]# "grep r[abc]t" /etc/passwd
- 连续的字符范围
[a-z] [A-Z] [a-zA-Z] [0-9] [a-zA-Z0-9]
^ 取反
[^a-z]
[root@localhost ~]# grep "a[^a-z]t" /tmp/1.txt
3) 特殊字符集
[[:digit:]] 任意单个数字
[[:alpha:]] 任意单个字母
[[:upper:]] 任意单个大写字母
[[:lower:]] 任意单个小写字母
[[:alnum:]] 任意单个数字、字母
[[:space:]] 任意单个空白字符
[[:punct:]] 任意单个标点
[root@localhost ~]# grep "a[[:upper:]]t" /tmp/1.txt
匹配字符出现的位置
^string 以string开头
[root@localhost ~]# grep "^root" /etc/passwd
[root@localhost ~]# grep "^[A-Z]" /tmp/1.txt
[root@localhost ~]# grep "^[^A-Z]" /tmp/1.txt
string$ 以string结尾
[root@localhost ~]# grep "bash$" /etc/passwd
^$ 空行
[root@localhost ~]# grep "^$" /etc/fstab | wc -l
| 管道
作用:把前面输出的结果当做后面命令的条件
匹配字符出现的次数
* 前一个字符出现任意次 ab*
[root@localhost ~]# grep "ab*" /tmp/2.txt
\? 前一个字符出现0次或者1次 可有可无
[root@localhost ~]# grep "ab\?" /tmp/2.txt
\+ 前一个字符出现1次或者多次
[root@localhost ~]# grep "ab\+" /tmp/2.txt
\{4\} 前一个字符精确出现4次
[root@localhost ~]# grep "ab\{3\}" /tmp/2.txt
{2,4}, {2,}
[root@localhost ~]# grep "ab\{2,4\}" /tmp/2.txt
[root@localhost ~]# grep "ab\{2,\}" /tmp/2.txt
分组 \(ab\)
[root@localhost ~]# grep "\(ab\)\{2,\}" /usr/share/dict/words
option选项:
-i 忽略大小写
[root@localhost ~]# grep -i "^r" /tmp/1.txt
-o 仅显示符合PATTERN的内容
[root@localhost ~]# grep -o "r..t" /etc/passwd
-e 同时根据多个条件过滤内容
[root@localhost ~]# grep -e "^#" -e "^$" /etc/fstab
-v 反向过滤
[root@localhost ~]# grep -v "^#" /etc/fstab
[root@localhost ~]# grep -v -e "^#" -e "^$" /etc/fstab
-E 支持扩展正则表达式
[root@localhost ~]# grep -E "(ab){2,}" /usr/share/dict/words
[root@localhost ~]# grep -E "bin|sbin" /etc/passwd
-A n 显示符合条件的后n行内容
[root@localhost ~]# ifconfig eth0 | grep -A 1 "broadcast" >>>查看eth0网卡的IP地址信息
inet 192.168.122.105 netmask 255.255.255.0 broadcast 192.168.122.255
inet6 fe80::5054:ff:fe71:3b1c prefixlen 64 scopeid 0x20<link>
-B n 显示符合条件的前n行内容
[root@localhost ~]# ip addr show eth0 | grep -B 1 "global" >>>查看网卡的IP地址及MAC地址
link/ether 52:54:00:71:3b:1c brd ff:ff:ff:ff:ff:ff
inet 192.168.122.105/24 brd 192.168.122.255 scope global dynamic eth0
通配符
标签:for mask 养成 ons 扩展正则表达式 inux str exp inet6
原文地址:http://www.cnblogs.com/gongll/p/7341073.html