代码改变世界

Linux_正则表达式

2015-12-09 04:57  云物互联  阅读(109)  评论(0编辑  收藏  举报

目录

前言

介绍一些简单的正则表达式标示符。

file、grep指令结合正则表达式过滤

[a,b,c] 若行中与[a,b,b]其中一个,则显示
[a-z]若行中有[a-z]其中一个,则显示
[^ab]除了a或者b一个字符开头的,都显示
[^a-z]*第一个字符不为字母的则显示
[a-z][0-9]找出字母和数字相连的行则显示

rm结合正则表达式删除

rm -rf .[!.]*删除第一个字符是.第二个字符不是.的行
rm -rf *通配符*默认不是删除隐藏文件
shopt -s dotglob设定通配符*可以包含”.”
shopt -u doglob还原一个例外i,设定通配符*不包含”.”

表达式标示符

. :表示单个字符
+ :表示”+”前面的字符可以出现按多次,一次以上不能为0次

egrep a+ file    #显示a出现一次以上的行 
#egrep 等效于 grep -E "正则表达式"

? :表示”?”前的字符可以出现一次或0次
* :表示*号前的字符可以出现多次或0次
.* : 表示任意字符
grep -E 'a.+' file显示以a开头,后跟一个以上的任意字符
grep -E 'a.+?' file显示以a开头的,后跟0个到多个字符的句子
^a :以a开头的行
a$ :以a结尾的行