您的位置:首页 > 运维架构 > Linux

Linux学习(2)- 正则表达式基础

2017-06-28 11:05 232 查看

Linux学习(2)- 正则表达式基础

一、基础正则表达式介绍与练习

学习内容

正则表达式特殊符号

[:alnum:]代表英文大小写字母及数字
[:alpha:]代表英文大小写字母
[:blank:]代表空格和 tab 键
[:cntrl:]键盘上的控制按键,如 CR,LF,TAB,DEL
[:digit:]代表数字
[:graph:]代表空白字符以外的其他
[:lower:]小写字母
[:print:]可以被打印出来的任何字符
[:punct:]代表标点符号
[:upper:]代表大写字符
[:space:]任何会产生空白的字符如空格,tab,CR 等
[:xdigit:]代表 16 进位的数字类型

作业

使用
# grep -n '[(上面的内容)]' XXX.txt
来查找。



二、grep 命令与正则表达式

实验文档讲解的已经十分清楚,若有记得不清楚的直接查看即可,所以直接链接,博客里就摘抄一下总结。

总结:
^word    表示带搜寻的字符串(word)在行首

word$    表示带搜寻的字符串(word)在行尾

.(小数点) 表示 1 个任意字符

\        表示转义字符,在特殊字符前加\会将特殊字符意义去除

*        表示重复 0 到无穷多个前一个 RE(正则表达式)字符

[list]   表示搜索含有 l,i,s,t 任意字符的字符串

[n1-n2]  表示搜索指定的字符串范围,例如[0-9] [a-z] [A-Z]等

[^list]  表示反向字符串的范围,例如[^0-9]表示非数字字符,[^A-Z]表示非大写字符范围

\{n,m\}  表示找出 n 到 m 个前一个 RE 字符

\{n,\}   表示 n 个以上的前一个 RE 字符

参数说明:

-a :将 binary 档案以 text 档案的方式搜寻数据

-c :计算找到 '搜寻字符串' 的次数

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

-n :顺便输出行号

-v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行!

作业

使用-n和不使用的区别



一些练习:





三、正则表达式运用之 sed 工具命令

在iterm中
nl regular_express.txt | sed '2a hello\n20155205'
会出错



但是
nl regular_express.txt | sed '2d'
却是正确的



查找了很多,还是不会怎么弄。。。

总结了一下感觉还是要自己多用多练才能熟练,此外因为我的事mac系统,所以有些命令和实验楼讲的不一样,自己也要多摸索。

参考资料

Shell正则表达式之grep、sed、awk实操笔记

sed命令
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: