linux学习笔记(一)---正则表达式
2012-10-11 22:55
211 查看
正则表达式就是处理字符串的方法,并且是以行为单位进行字符串处理的。通常在linux中,进行文字的"搜索/替换"工作。正则表达式只是一种处理字符串的标准表示方法,在linux中支持这种方法的工具有vi,sed,awk,grep等。
正则表达式的特殊字符:
Regular Expression字符 范例 含义
^(匹配行首) ^word 匹配以word开头的行
$(匹配行尾) word$ 匹配以word结尾的行
\w 匹配字母或数字或下划线或汉字
\s 匹配任意的空白符
\d 匹配数字
\b 匹配单词的开始或结束
.(匹配任意一个字符) hel.o 匹配以hel开头,o结尾的长度为5的字符串
\(转义字符) \. 匹配字符.
*(匹配任意多个前一个字符) hello* 匹配hell,hello....hellooooo......
\{n,m\}(匹配n到m个前一个字符) hello\{1,3\} 匹配hello,helloo,hellooo。 特殊情况:\{n\}:匹配n个前一个字符。\{n,\}:匹配至少n个前一个字符
[](匹配字符集合中的一个) [a-zA-Z] 匹配a-z或A-Z中的一个字符
[^](匹配不是字符集合中的一个字符) [^a-zA-Z] 匹配不是a-z和A-Z的一个字符
另外有四个扩展的正则表达式特殊字符:
Regular Expression字符 范例 含义
+(匹配1个或以上个前一个字符) hello+ 匹配hello,helloo....
?(匹配0个或1个前一个字符) go?d 匹配gd或god
|(匹配数个字符串中的一个) god|good 匹配god或good
()(匹配用户组,一般与|合用) re(a|o|e)d 匹配read或reed或reod
需要说明的是()会进入子shell,并且(!)在正则表达式中不是特殊字符。
以常用的正则表达式程序工具grep来说,其全称是Global search Regular Expression and print out the line,即全局搜索正则表达式并打印出行。
其格式如下:grep -[option] '搜索字符串' 文件名
参数说明如下:
-a 在二进制文件中以,文本文件方式搜索数据
-c 只输出匹配的行的数量
-i 搜索时忽略大小写
-h 查询多文件时不显示文件名
-l 只列出符合匹配的文件名,而不输出匹配行
-n 显示所有匹配行并列出行号
-s 不显示不匹配或无匹配文本的错误信息
-v 显示不包含匹配文件的所有行
-w 匹配整词,忽略regular expression字符的特殊含义
-x 匹配整行,必须整行内容匹配
-r 递归搜索,不仅搜索该目录,还搜索子目录
-q 不输出任何结果,以退出状态表示搜索是否成功
-b 打印匹配行距文件首部的偏移量,以字节为单位
-o 与-b结合使用,打印匹配单词距文件首部的偏移量,也是以字节为单位
-E 支持扩展正则表达式,等价于egrep
-F 不支持正则表达式,按字面意思进行匹配,等价于fgrep
待续......
这里说明的挺详细:/article/4778776.html
正则表达式的特殊字符:
Regular Expression字符 范例 含义
^(匹配行首) ^word 匹配以word开头的行
$(匹配行尾) word$ 匹配以word结尾的行
\w 匹配字母或数字或下划线或汉字
\s 匹配任意的空白符
\d 匹配数字
\b 匹配单词的开始或结束
.(匹配任意一个字符) hel.o 匹配以hel开头,o结尾的长度为5的字符串
\(转义字符) \. 匹配字符.
*(匹配任意多个前一个字符) hello* 匹配hell,hello....hellooooo......
\{n,m\}(匹配n到m个前一个字符) hello\{1,3\} 匹配hello,helloo,hellooo。 特殊情况:\{n\}:匹配n个前一个字符。\{n,\}:匹配至少n个前一个字符
[](匹配字符集合中的一个) [a-zA-Z] 匹配a-z或A-Z中的一个字符
[^](匹配不是字符集合中的一个字符) [^a-zA-Z] 匹配不是a-z和A-Z的一个字符
另外有四个扩展的正则表达式特殊字符:
Regular Expression字符 范例 含义
+(匹配1个或以上个前一个字符) hello+ 匹配hello,helloo....
?(匹配0个或1个前一个字符) go?d 匹配gd或god
|(匹配数个字符串中的一个) god|good 匹配god或good
()(匹配用户组,一般与|合用) re(a|o|e)d 匹配read或reed或reod
需要说明的是()会进入子shell,并且(!)在正则表达式中不是特殊字符。
以常用的正则表达式程序工具grep来说,其全称是Global search Regular Expression and print out the line,即全局搜索正则表达式并打印出行。
其格式如下:grep -[option] '搜索字符串' 文件名
参数说明如下:
-a 在二进制文件中以,文本文件方式搜索数据
-c 只输出匹配的行的数量
-i 搜索时忽略大小写
-h 查询多文件时不显示文件名
-l 只列出符合匹配的文件名,而不输出匹配行
-n 显示所有匹配行并列出行号
-s 不显示不匹配或无匹配文本的错误信息
-v 显示不包含匹配文件的所有行
-w 匹配整词,忽略regular expression字符的特殊含义
-x 匹配整行,必须整行内容匹配
-r 递归搜索,不仅搜索该目录,还搜索子目录
-q 不输出任何结果,以退出状态表示搜索是否成功
-b 打印匹配行距文件首部的偏移量,以字节为单位
-o 与-b结合使用,打印匹配单词距文件首部的偏移量,也是以字节为单位
-E 支持扩展正则表达式,等价于egrep
-F 不支持正则表达式,按字面意思进行匹配,等价于fgrep
待续......
这里说明的挺详细:/article/4778776.html
相关文章推荐
- Linux学习笔记--对文本的操作及正则表达式
- 最近在学习Linux,下面是一些学习笔记,以后会不定期更新,以此做总结.
- Linux学习笔记——DHCP服务
- linux学习笔记四:安装lsusb
- Linux学习笔记(二)--Xshell 5进行远程连接
- linux 进程学习笔记(1)
- 【Linux学习笔记】一、Linux 时间问题
- Linux中select函数学习及实例笔记
- Linux基础入门(六) --学习笔记-正则表达式
- Linux 网络学习笔记 1
- 2011-寒假 linux 学习笔记
- Linux学习笔记__Linux操作系统基础
- Linux学习笔记第二周第二次课(1月30日)
- Linux学习笔记(三)
- Linux学习笔记之 9 Linux文件系统与权限设置
- 【Linux学习笔记四】磁盘管理中文件压缩与解压
- Linux学习笔记------讲9.2.4 Linux如何支持NTFS文件系统???
- linux 学习笔记—链接命令
- Linux基础学习笔记之目录的相关操作
- 【Linux学习笔记十九】软件管理工具yum