一、正则表达式概论
1)何为正则表达式:
简单的说,Linux中的正则表达式就是处理字符的方法,可以让用户轻松地完成查找、删除、插入特定字符串的处理过程。
2)正则表达式的使用范围:
只要程序支持,正则表达式就能使用。如,vi、grep、awk、sed等程序。
二、使用正则表达式
1)基本正则表达式
其实挺简单的,主要是要去记住。
^word与word$分别指行首及行尾查找相应的word;
e.e指两个e中间一定有任意的一个字符;
ess*指所找的对象重复前一个字符,其中前一个字符可以为0个;
[abcde]指所找的对象一定含有abcde中一个字符;
[^abcd]指中间一定不存在abcd中任何一格字符;
{m,n}意指存在m-n个前一个字符,n可以不写意指n以上个字符;
2)扩展正则表达式
+指一个或一个以上前一个字符;
?指零个或一个前一个字符;
|用或的方式找出数个字符串;
()是上一个的升级版,可以在括号里把有差异的字符列出;
()+查询括号内重复字符;
三、正则表达式相关程序
1)grep
这个很常用了,直接莽;
2)sed
具体操作到时直接查文档吧。
需要记忆的是:
格式一般是sed -选项 ‘行数范围+操作’
一般操作为:
a在目的行的下一行出现
c替换
d删除
i插入
p打印
s替换
安静模式 -n选项的合理使用能较好地处理文档
3)printf
转义字符跟C是一样的,需要注意的是C中的打印字符用括号与双引号括住而这里的用的是单引号括住
4)awk
sed更多的是进行行处理,而这个更多的是进行字段处理。这里的字段是指以空格或者[tab]键进行分割的字符串或者数据。
一般处理格式为awk ‘条件 {操作}…’
条件使用变量如下:
NF 指字段数;
NR 指行数
FS 指分隔字符,默认为空格