Pattern:文本字符和正规表达式的元字符组合而成匹配条件
基本正则表达式的一些用法
grep简介:
Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户
----------------------------------------------------------------------------------------------
基本命令
[options]主要参数:
-c:只输出匹配行的数量。
-i:不区分大 小写(只适用于单字符)。忽略大小写
-h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。
-n:列出所有的匹配行及 行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所有行。
-w:匹配整词
-x:匹配整行
-r:递归搜索,不仅搜索当前工作目录,而且搜索子目录
-q:禁止输入任何结果,以退出状态表示搜索是否成功
-b:打印匹配行距文件头部的偏移量,以字节为单位
-E:支持扩展的正则表达式
-F:不支持正则表达式,按照字符串的字面意思进行匹配
pattern正则表达式主要参数:
\: 忽略正则表达式中特殊字符的原有含义。
^:匹配正则表达式的开始行。
$: 匹配正则表达式的结束行。
\<:从匹配正则表达 式的行开始。
\>:到匹配正则表达式的行结束。
[ ]:单个字符,如[A]即A符合要求 。
[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
。:所有的单个字符。
* :有字符,长度可以为0。
查询多位数字的时候
egrep -o [1-9]+[1-9]+[1-9]+[1-9]+[1-9]+[1-9]+[1-9]+[1-9]+[1-9]+[1-9]+[1-9]
awk显示五个数字的
awk '{if(length($0) ==5)print;}'
###################################################################################
例子:
1、显示/proc/meminfo文件中以不区分大小的s开头的行;grep -i '^s' /proc/meminfo
grep '^[sS]' /proc/meminfo
2、显示/etc/passwd中以nologin结尾的行;
grep 'nologin$' /etc/passwd 取出默认shell为/sbin/nologin的用户列表
grep "nologin$' /etc/passwd | cut -d: -f1 取出默认shell为bash,且其用户ID号最小的用户的用户名
grep 'bash$' /etc/passwd | sort -n -t: -k3 | head -1 | cut -d: -f1 3、显示/etc/inittab中以#开头,且后面跟一个或多个空白字符,而后又跟了任意非空白字符的行;
grep "^#[[:space:]]\{1,\}[^[:space:]]" /etc/inittab 4、显示/etc/inittab中包含了:一个数字:(即两个冒号中间一个数字)的行;
grep ':[0-9]:' /etc/inittab 5、显示/boot/grub/grub.conf文件中以一个或多个空白字符开头的行;
grep '^[[:space:]]\{1,\}' /boot/grub/grub.conf 6、显示/etc/inittab文件中以一个数字开头并以一个与开头数字相同的数字结尾的行;
grep '^\([0-9]\).*\1$' /etc/inittab
学会了正则表达式和锚定对我们的帮助大大的哦
本文出自 “飞天鹰-----血杀组” 博客,请务必保留此出处http://749806593.blog.51cto.com/6662384/1150633