简单的说,正规表示法就是处理字符串的方法,它是以行为单位,通过一些特殊符号的辅助,可以让使用者轻易的达到搜寻/取代某特定字符串的处理程序。管理员可以通过正规表示法来将重要讯息撷取出来,并产生便于查阅的报表,简化管理流程。
正规表示法并不是一个工具程序,如果您想要以正规表示法的方式处理字符串,就得要使用支持正规表示法的工具程序才行,例如 vi, grep,sed, awk 等等。
请注意:正规表示法与万用字符不是一样的东西。
主要功能介绍:
- grep 工具
- 特殊字符;
- sed 工具;
- 文件数据比对
grep 的用法在 Bash shell 使用 中的管线命令部分已有介绍,不过是以管线命令的形式使用的,而在正规表示法中它是用来进行档案的资料搜寻的。
grep 搜寻方式主要有几种:
- 搜寻特定字符串;
- 利用 [ ] 来搜寻集合字符;
- 行首字符 ^ 与行尾字符 $ ;
- 任意一个字符 . 与重复字符 * ;
- 限定连续字符范围 { }。
主要用法:
其他一些用法:
特殊字符
sed 工具
sed 可以分析标准输入的数据, 将数据经过处理后,再将其输出到标准输出上。处理功能有:取代、删除、新增、撷取特定行等等。
注意:sed 工具只是对标准输入进行处理,并不改变源文件内容。
用法:sed [参数] [动作]
参数:-n : 安静模式,只有经过 sed 处理的行才会显示
-e : 直接在指令列模式上进行 sed 动作
-f : 将 sed 动作写入一个档案;-f filename 则可执行 filename 内的 sed 动作
动作:[n1[,n2]]function
n1, n2 : 表示选择进行动作的行数,不一定存在
function :
常见的使用:
档案比对 diff
比对两个档案之间的差异的,一般是用在 ASCII 纯文字文件的比对上。
用法:diff [参数] old_file new_file
参数:old_file : 一个档名,作为原始比对的档案
new_file :作为新的比对档案
-b :忽略一行中仅有的多个空白的差异
-B :忽略空白行的差异
-i :忽略大小写的不同
假设将 /etc/passwd 的内容,第四行删除, 第六行则取代成为 'new sixth line',新的档案放置到 /tmp/test 里面: