第二讲:正则表达式与文件格式化处理
1.1 :了解有关的一些重要的特殊符号
特殊符号 代表意义
[:alnum:] 代表英文大小写字符及数字即:(0-9,A-Z,a-z)
[:alpha:] 代表任何英文大小写字符,即:a-z,A-Z
[:upper:] 代表大写字符 即:A-Z
[:lower:] 代表小写字符 即:a-z
[:digit:] 代表数字而已 即:0-9
-------------------------------------------------------------------
*注:以上几个一定要知道其意义。
--------------------------------------------------------------------
[:space:] 代表任何会产生空白的字符,包括空格键【tab】等
[:punct:] 代表标点符号,即:‘ “ ? ; :# $
[:blank:] 代表空格键与[Tab]按键
--------------------------------------------------------------------
1.2 了解一下grep 命令
(1):grep [options] pattern(模式) file ...
模式:是指正则表达式,元字符
*注; 这里的模式是讲字符串或者字符,数字和元字符组合其匹配的模式
(2): grep 的选项
-i :不区别字符的大小写;
-v :取不包括模式的行(取反);
-n :显示所匹配行的行号;
-An:取匹配的行与其后n行;
-Bn:取匹配的行与其前n行;
-Cn:取匹配的行与其前后n行;
--color:使其匹配的模式在结果中明亮显示
(3):正则表达式包括:基础正则表达式和扩展正则表达式
1,基础正则表达式的元字符:
RE字符 意义
^ 待查找的字符串在行首
----------------------------------------------------- $ 待查找的字符串在行尾
-----------------------------------------------------
. 代表一定有一个任意字符的字符
空格符也是字符
-----------------------------------------------------
\ 转义字符,将特殊符号的特殊意义去除
-----------------------------------------------------
* 重复零个到无穷多个的前一个字符
.*表示任意字符
-----------------------------------------------------
[abc...] 匹配中括号中的任一个字符
-----------------------------------------------------
[ a-z] 匹配指定范围内的任一个字符
-----------------------------------------------------
[^A-Z] 匹配不在指定范围内的任一个字符
-----------------------------------------------------
\< 词首定位符(注意其对象)(\<love)
-----------------------------------------------------
\> 词尾定位符(love\>出现在某
词的词尾,选取哪一行
-----------------------------------------------------
\(..\) 匹配稍后将要使用的标签
\(love\)able\1er 模式love被保存为标签,用\1来表示
表示所匹配含有loveable后跟lover
长字符串
-----------------------------------------------------
x\{m\} 表示字符x连续出现m次;
x\{m,\} x至少连续出现m次;
x\{m,n\} x至少连续出现m次,最多出现n次
-----------------------------------------------------
2:扩展正则表达式的RE字符
*注:. $ * ^ [a-z] [^A-Z] 的RE字符与基础正则表达式中的代表的意义一样。
grep -E...=egrep
-----------------------------------------------------
RE字符 意义
-----------------------------------------------------
+ 重复一个或者一个以上前一个字符
-----------------------------------------------------
? 零个或一个前一个字符
-----------------------------------------------------
| 查找good或者boy这两个字符串,可以用或(or)|这个RE字符找出; good|boy
*注:| RE字符是用或的方式找出数个字符串;
注意:它是找出含有模式中的字符串的行,而不是 | 前后的字母含有的行。
good|boy|girl......
其实在grep中同样可以实现这种功能,只不过要在每一个|之前加上转义字符\.
-----------------------------------------------------
( ) 字符组
查找glad 或good 可以用: g(la|oo)d
-----------------------------------------------------
1.3:关于grep egrep ,fgrep 在数据查找中查找一个字符串时,是以整行为单位来进行数据选取的。
1.4:alias grep='grep --color'
unalias grep
*注意是单引号,看看释放别名时。
-----------------------------------------------------