Linux系统学习之正则表达式笔记
2014-03-02 02:43
435 查看
一、正则表达式
在计算机科学中,正则表达式是用来描述或匹配一系列符合某个句法规则的字符串;在文本编辑器或某些工具(例如bash环境)中,正则表达式通常被用检索那些符合某个模式的文本内容。在linux中,正则表达式是由一类字符所书写的模式。通过实现定义好的模式来实现对bash环境中所需要字符串的过滤。
正则表达式是由一系列的普通字符和一些元字符组成。普通字符主要包括了大小写字母和数字。元字符则具有特殊的含义。它不表示字符本身的意义而用于额外的一些功能性的描述。正则表达式有基本正则表达式和扩展正则表达式之分,下面我将列出在linux中常用的一些常用的元字符,并用相关的实例来进行讲解:
1.基本正则表达式
***
2.扩展正则表达式
以下主要列出不同于基本正则表达式的部分元字符
3.在linux中还有其它的一些转义字符,但这里仅对常用的进行了一些列举和解释。有兴趣的朋友可以通过“man 7 regex”查看man文档中提供的帮助系统。
二、grep命令的使用
下面我来向大家介绍如何通过grep命令来使用正则表达式进行相应的模式匹配。首先我来介绍一下grep命令的基本使用。
grep (Global Search Regular Expression and Printing),表示全面搜索正则表达式并进行打印,是一种强大的文本搜索工具,它能够使用正则表达式搜索文本,并把匹配的行打印出来。grep有三种,包括grep、egrep和fgrep。
分别表示如下:
三、以下我将在rhel6.4上使用具体的实例来显示grep命令如何使用正则表达式来进行模式匹配。
使用前在当前bash中对grep设置一个别名,命令如下:
aliasgrep='grep --color=auto'
1.显示/etc/passwd文件中以不区分大小写的s开头的行。
grep"^[sS]"/etc/passwd
egrep"^(s|S)"/etc/passwd
2.显示默认shell为bash,且其用户ID号最小的用户的用户名。
grep"/bin/bash$"/etc/passwd| sort-n -t: -k3 | cut-d: -f1
3.显示/etc/rc.d/rc.sysinit中以#开头,且后面跟一个或多个空白字符,而后又跟了任意非空白字符的行。
grep"^#[[:space:]]{1,}[^[:space:]]"/etc/rc.d/rc.sysinit
egrep"^#[[:space:]]+[^[:space:]]"/etc/rc.d/rc.sysinit
4.显示/etc/rc.d/rc.sysinit中符合任意单个字符后面跟了个n,n后面有任意长度的任意字符,而后是任意单个字符后面跟了个n,但后面的n之前的字符要与前面的n之前的字符相同。
grep"(.n)".*1" /etc/rc.d/rc.sysinit
5.显示test.txt文件中的,1位数,或2位数。
grep-w "[0-9]{1,2}"test.txt
grep"<[0-9]{1,2}>"test.txt
6.显示ifconfig命令结果中的1-255之间的整数。
ifconfig| egrep"<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])>"
7.匹配ifconfig命令中的IP地址,要求匹配范围为1.0.0.1~~223.255.255.254
ifconfig| egrep-o --color "<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-1][0-9]|22[0-3]).([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]).([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]).([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4])>"
本文出自 “凄凄秋如夜 残雪舞指间” 博客,请务必保留此出处http://0101x.blog.51cto.com/8639108/1365763
在计算机科学中,正则表达式是用来描述或匹配一系列符合某个句法规则的字符串;在文本编辑器或某些工具(例如bash环境)中,正则表达式通常被用检索那些符合某个模式的文本内容。在linux中,正则表达式是由一类字符所书写的模式。通过实现定义好的模式来实现对bash环境中所需要字符串的过滤。
正则表达式是由一系列的普通字符和一些元字符组成。普通字符主要包括了大小写字母和数字。元字符则具有特殊的含义。它不表示字符本身的意义而用于额外的一些功能性的描述。正则表达式有基本正则表达式和扩展正则表达式之分,下面我将列出在linux中常用的一些常用的元字符,并用相关的实例来进行讲解:
1.基本正则表达式
***
2.扩展正则表达式
以下主要列出不同于基本正则表达式的部分元字符
3.在linux中还有其它的一些转义字符,但这里仅对常用的进行了一些列举和解释。有兴趣的朋友可以通过“man 7 regex”查看man文档中提供的帮助系统。
二、grep命令的使用
下面我来向大家介绍如何通过grep命令来使用正则表达式进行相应的模式匹配。首先我来介绍一下grep命令的基本使用。
grep (Global Search Regular Expression and Printing),表示全面搜索正则表达式并进行打印,是一种强大的文本搜索工具,它能够使用正则表达式搜索文本,并把匹配的行打印出来。grep有三种,包括grep、egrep和fgrep。
分别表示如下:
三、以下我将在rhel6.4上使用具体的实例来显示grep命令如何使用正则表达式来进行模式匹配。
使用前在当前bash中对grep设置一个别名,命令如下:
aliasgrep='grep --color=auto'
1.显示/etc/passwd文件中以不区分大小写的s开头的行。
grep"^[sS]"/etc/passwd
egrep"^(s|S)"/etc/passwd
2.显示默认shell为bash,且其用户ID号最小的用户的用户名。
grep"/bin/bash$"/etc/passwd| sort-n -t: -k3 | cut-d: -f1
3.显示/etc/rc.d/rc.sysinit中以#开头,且后面跟一个或多个空白字符,而后又跟了任意非空白字符的行。
grep"^#[[:space:]]{1,}[^[:space:]]"/etc/rc.d/rc.sysinit
egrep"^#[[:space:]]+[^[:space:]]"/etc/rc.d/rc.sysinit
4.显示/etc/rc.d/rc.sysinit中符合任意单个字符后面跟了个n,n后面有任意长度的任意字符,而后是任意单个字符后面跟了个n,但后面的n之前的字符要与前面的n之前的字符相同。
grep"(.n)".*1" /etc/rc.d/rc.sysinit
5.显示test.txt文件中的,1位数,或2位数。
grep-w "[0-9]{1,2}"test.txt
grep"<[0-9]{1,2}>"test.txt
6.显示ifconfig命令结果中的1-255之间的整数。
ifconfig| egrep"<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])>"
7.匹配ifconfig命令中的IP地址,要求匹配范围为1.0.0.1~~223.255.255.254
ifconfig| egrep-o --color "<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-1][0-9]|22[0-3]).([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]).([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]).([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4])>"
本文出自 “凄凄秋如夜 残雪舞指间” 博客,请务必保留此出处http://0101x.blog.51cto.com/8639108/1365763
相关文章推荐
- 【Linux学习笔记】37:基础正则表达式元字符
- 【Linux学习笔记九】Shell编程-正则表达式
- python 系统学习笔记(十五)---正则表达式
- Linux学习笔记---day8(3.27)sed,awk与正则表达式
- python 系统学习笔记(十五)---正则表达式
- Linux学习笔记(正则表达式-1)
- Vbird的Linux私房菜学习笔记之正则表达式-grep
- Linux运维学习笔记之六:Linux中的文件类型、属性、正则表达式、权限体系
- linux学习笔记: grep命令,正则表达式
- Vbird的Linux私房菜学习笔记之正则表达式-sed
- Linux 学习笔记――正则表达式
- Linux学习笔记—day2(3.13)------基本命令,通配符,正则表达式
- Linux 学习笔记 -- 第三部分 学习 shell 与 shell script -- 第12章 正则表达式与文件格式化处理
- linux正则表达式学习笔记
- Vbird的Linux私房菜学习笔记之正则表达式-awk
- Ruby学习笔记_正则表达式,获取系统时间,替换字符
- Linux学习笔记:grep及正则表达式
- 【学习笔记——Linux】Linux正则表达式和文件格式化处理
- Linux系统学习之正则表达式
- Linux运维学习笔记-通配符及正则表达式知识总结