Linux培训笔记之正则表达式

1.什么是正则表达式?

要想管理好主机,任何一名有经验的系统管理员都会告诉你,“正则表达式很重要”。为什么重要呢?因为在日常的管理主机的过程中,

主要的就是处理文本字符,而正则表达式恰恰是处理文本所离不开的工具。

总之,正则表达式就是处理字符串的方法,以行为单位进行字符串的处理,通过一些特殊符号的辅助,可以让用户轻松的处理文本。

对于一般用户而言,使用正则表达式的机会不多,不过,要想成为一名系统管理员,正则表达式则是不可不学的。原因是,在于,系统每天产生的的信息会多到你无法想像。

由于系统的数据量太大,要系统管理员每天去看这么多信息,真的很不现实,从千百行中找出有问题的行进行处理,才是明智的做法,这个时候,就不得不用到正则表达式了。如此一来,管理员的工作将会很轻松了,当然正则表达式的用处还不至于此,深入了解后,你会爱上它的。

正则表达式分为两种,一种是基础的正则表达式,一种是扩展的正则表达式。

下面我们就介绍这两种正则表达式。

一:基础的正则表达式。

正则表达式是处理字符串的标准方式,它需要有支持的工具程序来辅助,所以,这里先介绍一个简单的命令grep。在介绍完后,再讲讲表达式的字符串处理能力。

先了解一下grep的语法。

grep [-acinv]  '搜索字符串'  filename

参数说明:

-a :在二进制文件中,以文本方式搜索数据。

-c :计算找到‘搜索字符串’的次数。

-i  :忽略大小写的不同,所以大小写视为相同。

-n :输出行号。

-v :反向选择,即显示出没有 ‘搜索字符串’的那些行显示出来。

#grep -v  'root' /var/log/secure

将/var/log/secure下的没有root的那些行显示出来

#grep  'root' /var/log/secure

将/var/log/secure下有root的那些行显示出来

下面来结合grep讲讲正则表达式。

grep是很常用的命令,它最重要的功能就是进行字符串的比较,然后将符合用户需要的字符串打印出来。grep在数据中查找一个字符串时是以“行”为单位进行数据的选取的。只有满足条件的行才被显示出来,不满足的就不会显示出来 。

1。搜索特定字符串

#grep -n  'the' myfile.txt

在myfile.txt 中查找 the 单词,并显示出是第几行。

#grep -vn  'the'  myfile.txt

在myfile.txt中查找 the 单词,显示出没有the 的行,并显示出是第几行

#grep -in  'the' myfile.txt

不考虑the的大小写,大写和小写都是同等的,并显示出有the的行,打印出是第几行

2.利用[ ]来搜索集合字符

如果要搜索test和taste这两个单词时,可以发现,它们有共同的部分,就是‘t?st’,这个时候,我们可以这样搜索

#grep -n  't[ae]st'  myfile.txt

其实,,[ ]里论有几个字符,都只代表一个字符,所以,上面的例子说明了我们只需要tast或test 两个字符串

如果想要搜索有aa的字符,可以用下面方法
#grep -n 'aa' myfile.txt

但是如果不想aa前面有c,可以用集合字符的反向选择[^]来实现:
#grep -n '[^c]aa' myfile.txt

当然[]里面还可以连写,如abc前面只能出现小写字母。
#grep -n '[a-z]abc' myfile.txt

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/26583.html