-w 整行匹配整个单词
-E 使用扩展正则表达式
正则表达式:
. 匹配任意单个字符;
[] 匹配指定范围内的任意单个字符
[^] 匹配指定范围外的任意单个字符
* 匹配前面的字符任意次,包括0次 次贪婪模式:尽可能长的匹配
.* 任意长度的任意字符
? 匹配其前面的字符0 或1次
+ 匹配其前面的字符至少1次
{m} 匹配前面的字符m次
{m,n} 匹配前面的字符至少m 次,至多n次
{,n} 匹配前面的字符至多n次 次
{m,} 匹配前面的字符至少m次
^ 行首锚定,用于模式的最左侧
$ 行尾锚定,用于模式的最右侧
^PATTERN$ 用于模式匹配整行
^$ 空行
^[[:space:]]*$ 空白行
< 或 或 b 词首锚定,用于单词模式的左侧
> 或 或 b 词尾锚定;用于单词模式的右侧
<PATTERN> 匹配整个单词
() 将一个或多个字符捆绑在一起,当作一个整体进行处理
[:alpha:] 所有字母,包括大、小写
[:alnum:] 所有字母和数字
[:upper:] 所有大写字母
[:lower:] 所有小写字母
[:digit:] 所有数字
[:punct:] 所有标点符号
[:space:] 空格和Tab
扩展正则表达式:
. 任意单个字符
[] 指定范围的字符
[^] 不在指定范围的字符
* 匹配前面字符任意次
? 0 或1次 次
+ 1 次或多次
{m} 匹配m次
{m,n} 至少m ,至多n次
^ 行首
$ 行尾
<, b 语首
>, b 语尾
分组 ()
后向引用:1, 2, ...
或者:a|b
C|cat: C 或cat
(C|c)at:Cat 或cat
[root@bogon ~]# grep '^(root|apache)' test.txt ##过滤以root或apache开头的行
root:x:0:0:root:/root:/bin/bash
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
[root@bogon ~]# grep -R /sbin/nologin * ##递归从所以文件中查询匹配的内容
test.txt:bin:x:1:1:bin:/bin:/sbin/nologin
test.txt:daemon:x:2:2:daemon:/sbin:/sbin/nologin
[root@bogon ~]# ip addr |grep "dynamic" |tr -s " " |cut -d " " -f3 |cut -d "/" -f1 ##过滤ip地址
192.168.25.102
[root@bogon ~]# ip addr |grep -E -o "([0-9]{1,3}[.]){1,3}[0-9]{1,3}"
127.0.0.1
192.168.25.102
192.168.25.255
[root@bogon ~]# df -Th |tr -s " " |sort -k 6nr |head -1 ##查出使用率的最大百分比值的分区
/dev/sda1 xfs 497M 125M 373M 25% /boot
[root@bogon ~]# cat /etc/passwd |sort -t ':' -k 3n |tail -1 |cut -d ":" -f1,3,7
systemd-bus-proxy:999:/sbin/nologin ##找出uid最大值的用户,并显示用户名、UID、及shell类型










