正则表达式

来源:互联网 发布:数据库应用程序开发 编辑:程序博客网 时间:2024/05/16 09:40

1、正则表达式是Linux中很好用的一种文本处理工具。下面简单的介绍下用法和规则。

参数介绍(经常用的):

grep –n   //处理输出的过程中对文本的位置行号进行打印。

grep –I   //在查找的过程中忽略查找内容的大小写。

grep –v  //在查找的过程中忽略排除不包含查找条件的内容,就是反向查找的意思。

另外在grep中有许多的通配符可以提供给我们查找使用。

.:表示任意一个字符。

*:表示任意一个字符出现多少次。

.*:代表的就是任意多个字符的意思了。

\{n,m\}:前面的字符出现最少n次,最多m次。

^:定位在行首。

$:定位在行尾。

\?:前面的字符出现一次或者0次。

\<word\>:查找的内容必须以单词的形式出现,其中的<符号可以用b来进行代替。

\(…..)\:分组出现。

2、扩展正则表达式

{m,n}:匹配前面的字符出现最少m次,最多n次。

+:匹配前面的字符最少出现一次。

*:前面的字符出现任意次。

?:匹配前面的字符出现出现0次或者是1次。

定位在行首和行尾的用法是和标准的grep是一样的在这里就不在进行赘述。

--------------------------------------------------------------------------------------------------------------------

下面简单的介绍几个例子进行详细的说明。

练习:
1、显示/proc/meminfo文件中以不区分大小的s开头的行;
  grep –i ^s /proc/meninfo
2、显示/etc/passwd中以nologin结尾的行;
   grep \<nologin\>$ /etc/passwd
3、显示/etc/inittab中以#开头,且后面跟一个或多个空白字符,而后又跟了任意字符的行;
  grep“^#[[:space:]]*.*” /etc/inittab

grep“^#[[:space:]]+.*” /etc/inittab
4、显示/etc/inittab中包含了:一个数字:(即两个冒号中间一个数字)的行;
  grep :[0-9]: /etc/inittab 
5、显示/boot/grub/grub.conf文件中以一个或多个空白字符开头的行;
    grep^[[:space:]]\{1,\}.*" /boot/grub/grub.conf
    grep  -E --color"^[[:space:]]{1,}.*" /boot/grub/grub.conf 
6、显示/etc/inittab文件中以一个数字开头并以一个与开头数字相同的数字结尾的行;
    grep “\(^[0-9]\).*\1$” /etc/inittab  grep"[0-9]\{1,3\}\."\{3\}\.[0-9]\{1,3\} 

0 0
原创粉丝点击