简介
grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。
grep基本用法
- 格式
grep [options]
- 主要参数
[options]主要参数:
-c:只输出匹配行的计数。
-I:不区分大 小写(只适用于单字符)。
-h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。
-n:显示匹配行及 行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所有行。
pattern正则表达式主要参数:
\: 忽略正则表达式中特殊字符的原有含义。
^:匹配正则表达式的开始行。
$: 匹配正则表达式的结束行。
\<:从匹配正则表达 式的行开始。
\>:到匹配正则表达式的行结束。
[ ]:单个字符,如[A]即A符合要求 。
[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
。:所有的单个字符。
* :有字符,长度可以为0。
- grep命令使用练习(正则表达式)
1、显示/proc/meminfo文件中以大小s开头的行;(要求:使用两种方式)
[[email protected] ~]# grep ‘^[Ss]‘ /proc/meminfo
[[email protected] ~]# grep -i ‘^s‘ /proc/meminfo
2、显示三个用户root、mage、wang的UID和默认shell
[[email protected] ~]# cat /etc/passwd|egrep "^(root|mage|wang)\>" | cut -d : -f1,3,7
3、找出/etc/rc.d/init.d/functions文件中行首为某单词(包括下划线)后面跟一个小括号的行[[email protected] ~]# egrep "[_[:alpha:]]+\(\)" /etc/rc.d/init.d/functions
4、使用egrep取出/etc/rc.d/init.d/functions中其基名
[[email protected] ~]# echo "/etc/rc.d/init.d/functions" | egrep -o "[^/]+/?$"
5、使用egrep取出上面路径的目录名
[[email protected] ~]# echo "/etc/rc.d/init.d/functions/" | egrep -o "/.*[^/]" | egrep -o "/.*/"
6、显示ifconfig命令结果中所有IPv4地址
[[email protected] ~]# ifconfig | egrep -o "\<(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>"