标签:grep egrep
grep相关用法:
正则表达式
作用:grep 文本搜索工具,根据用户制定的模式(partern)逐行搜索目标文本,打印匹配的行。
模式: 正则表达式的元字符及文本字符所编写的过滤条件。
元字符:字符表示其字面意义,而用于表示通配或控制功能。
语法:
-v:显示模式匹配不到的行
-i:忽略字符大小写
-o:仅显示能够模式匹配到串
-q:静默模式
-E:扩展的正则表达式
基本正则表达式的元字符
字符匹配:
.:匹配任意单个字符
[]:匹配指定范围内额任意单个字符
[^]:匹配指定范围内的任意单个字符,非...
指定字符集:
[[:lower:]]表示[a-z]
[[:upper:]]表示[A-Z]
[[:alnum:]]表示[a-zA-Z0-9]
[[:alpha:]]表示[a-zA-Z]
[[:space:]]表示空格和tab键
[[:digit:]]表示[0-9]
次数匹配元字符,用于要指定其次数字符的后面,前面字符出现多少次
*:任意次
\?:0次或1次
\+:1次或多次
\{m\}:精确m次数
\{m,n\}:至少m次,至多n次
\{0,n\}:至多n次
\{m,\}:至少m次
.*:任意长度的任意字符
位置锚定
^:行首锚定,用于模式的最左侧
$:行尾锚定,用于模式的最右侧,使用 单引号作强应用
\<,\b:词首锚定,表示单词模式的左侧
\>,\b:词尾锚定,表示单词模式的右侧
^$:空白行
分组符号:\(\)多个字符当成一个字符
分组的小挂号中的模式匹配到的内容,会在执行过程总被正则表达式引擎记录下来,保存内置的变量中,\1,\2
\1:从左侧起,第一个左括号,以及与之配对的右括号中间的模式所匹配到的内容
\2:从左侧起,第二个左括号,以及与之配对的右括号中间的模式所匹配到的内容
后向应用,使用变量引用前面的分组鼓号中的模式所匹配的字符。
扩展的正则表达式
grep家庭有3个命令
grep 基本的正则表达式
-E 扩展的正则表达式
-F 不支持正则表达式(字符当元字符搜索)
egrep 扩展的正则表达式
fgrep 不支持正则表达式
扩展正则表达式的元字符:
字符匹配:
.:任意单个字符
[]:匹配指定范围内额任意单个字符
[^]:匹配指定范围内的任意单个字符,非...
次数匹配:
*:任意次数
?:0次或1次
+:1次以上
{m}:精确匹配m次
{m,n}:至少m次,至多n次
锚定:
^:锚定行首
$:锚定行尾
\<,\b:词首
\>,\b:词尾
分组:()
后向引用,\1,\2,.....
或者
a|b
C|cat:不表示Cat或cat,而表示C或cat
要写成(C|c)at
练习
显示/etc/passwd文件中以bash结尾的行
显示/etc/passwd文件中的两位数或三位数
显示`netstat -tan`命令结果中以‘LISTEN’后跟0个、1个或者多个空白字符结尾
添加用户bash、testbash、basher以及nologin用户(nologin用户的shell为/sbin/nologin);而后找出/etc/passwd文件中用户名与其shell名相同的行
显示当前系统上root、centos或者user1用户的默认shell和UID (请事先创建这些用户,若不存在)
找出/etc/rc.d/init.d/functions文件中某单词(单词中间可以存在下划线)后面跟着一组小括号的行
使用echo输出一个路径,而后egrep找出其路径基名;进一步的使用egrep取出其目录名
找出ifconfig命令执行结果中1-255之间的数字
标签:grep egrep
原文地址:http://youenstudy.blog.51cto.com/6722910/1690358