6.1 什么是正则表达式
对于什么是正则表达式,网络上有很多解释。作者的理解是:正则表达式是一种文本模式,或者说是一种特殊的字符串模式,它的作用是处理字符串。
6.2 字符
学习正则表达式的前提是了解正则表达式中需要用到的一些字符及其含义。正则表达式中的字符及其含义见表 6-1。
6.3 文本处理命令
为什么要介绍这些文本处理命令呢?因为正则表达式经常会与这些命令配合一起使用。
6.3.1 grep 命令
grep 命令是一个强大的文本搜索工具,它与正则表达式配合,将匹配到的行输出到屏幕上。grep 命令的语法格式如下。
grep [选项] 条件表达式 文件名
grep 命令常用的选项如下。
- -c:只输出匹配行的列数。
- -I:不区分大小写(只适用于单字符)。
- -l:查询多文件时只输出包含匹配字符的文件名。
- -n:显示匹配行及其行号。
- -s:不显示不存在或无匹配文本的错误信息。
- -v:显示不包含匹配文本的所有行。
6.3.2 sed 命令
sed 命令是一种流编辑器,用于过滤或转换文本。sed 命令的语法格式如下。
sed [选项] 'command'文件名
(1)sed 命令常用的选项如下。
- -n:取消默认输出。
- -i:修改文件内容。
(2)sed 命令中的 command 常用选项如下。
- d:删除。
- p:打印。
- s:替换指定字符。
- g:全局替换。
6.3.3 awk命令
awk是一个强大的编程工具,用于在 Linux和 UNIX下对文本和数据进行处理。 awk命令的语法格式如下。
awk[选项] '条件 {动作}' 文件名 awk命令常用的选项如下。
- -F fs:指定分隔符,fs可以是字符串或正则表达式。
- -f scripfile:从脚本文件中读取 awk命令。
上述 3个命令的参数都非常多,这里只列举一些常用的选项,有兴趣的读者请查看帮助文档自行研究。
6.4 正则表达式使用示例
下面将使用grep、sed、awk这 3个命令配合正则表达式进行示例操作。将系统中的 IP地址取出并输出到屏幕上,操作过程如下。 (1)使用 sed命令配合正则表达式取出 IP地址,命令如下。
[root@centos6 ~]# ifconfig eth0|sed -n '2p'
inet addr:192.168.197.100 Bcast:192.168.197.255 Mask:255.255.255.0 #打印IP地址信息,然后截取第二行内容输出 [root@centos6 ~]# ifconfig eth0|sed -n '2p'|sed -r 's#.*addr:##g'
192.168.197.100 Bcast:192.168.197.255 Mask:255.255.255.0 #将第一步结果中“addr:”及其前所有字符全局替换成空 [root@centos6 ~]# ifconfig eth0|sed -n '2p'|sed -r 's#.*addr:##g'|sed -r 's# Bcast.*$##g'
192.168.197.100 #将第二步结果中“Bcast”开头且任意字符结尾的部分全局替换成空,并输出最终结果
(2)使用 grep命令与 awk命令配合正则表达式取出 IP地址,命令如下。
[root@Centos /]# ifconfig eth0 |grep "inet addr"
inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0
#首先将带有IP地址的行过滤打印出来,再进行过滤取出IP地址
[root@Centos /]# ifconfig eth0 |grep "inet addr"|awk -F '[ :]+' '{print $4}'
192.168.1.2 #以空格和“:”作为分隔符,“+”代表前面多个重复的分隔符视为一个,将第四列打印
6.5 vim 编辑器
6.5.1 什么是 vim 编辑器
vim 是 vi 的加强版,比 vi 更容易使用。vim 编辑器是 UNIX 系统和 Linux 系统中最标准的编辑器,功能非常强大,可以执行查找、删除、替换、输出多种文本的操作。因此,掌握 vim 编辑器的使用方法是学习 Linux 系统过程中比较重要的一个基础部分。
6.5.2 vim 编辑器的 3 种模式
vim 编辑器有 3 种模式,分别如下。
(1)命令模式:在此模式下,可以通过移动光标,对字符或行进行删除操作。
(2)插入模式:在命令模式下,按<I>键即可进入插入模式,只有在插入模式下才可以进行文字、字符的输入操作。按<Esc>键可以退出插入模式(返回命令模式)。
(3)底行模式:在此模式下,可以保存文件、设置编辑环境,以及退出 vim 编辑器。
这 3 种模式之间的切换如图 6-1 所示。
图6-1 vim编辑器在3种模式之间的切换
6.6 vim 编辑的操作
6.6.1 光标的移动方法
vim 编辑器在命令模式下光标的移动方法见表 6-2。
6.6.2 搜索与查找
vim 编辑器在命令模式下搜索与查找的方法见表 6-3。
6.6.4 保存与退出
vim 编辑器在插入模式下保存与退出的方法见表 6-5。
表 6-5 插入模式下保存与退出的方法
本文摘自《Linux系统运维指南:从入门到企业实战》
本书系统全面、由浅入深地介绍了 Linux系统运维的知识,以及在企业实际环境中用到的各类服务、架构和运维管理。本书分基础篇、 LAMP/LNMP架构篇、应用服务篇和架构运用篇。基础篇详细介绍 Linux系统的基础知识, LAMP/LNMP架构篇介绍时下企业中最常见的两种架构的部署与配置,应用服务篇以企业实际运维环境为出发点详细介绍当下企业用到的各类开源软件服务,架构运用篇对前三篇的知识进行总结,并结合企业的实际场景加以实践。
本书既适合在 Linux系统运维方面零基础的技术人员阅读,也适合初、中级运维工程师和网络工程师学习使用。