Linux 正则表达式的基本用法
- 基本的正则表达式
* #0个或多个在*字符之间的那个普通字符
. #匹配任意字符 (可以匹配空格)
^ #匹配首行,或者后面字符的非
$ #匹配行尾
[] #匹配字符集合
\ #转义符,屏蔽一个元字符的特殊意思
\<\> #精确匹配符号
\{n\} #匹配前面字符出现n次
\{n,m\} #匹配前面字符出现n-m次
- 扩展的正则表达式
? #匹配0个或1个在其之前的那个普通字符
+ #匹配1个或者多个在其之前的那个普通字符
() #表示一个字符集或用expr中
| #表示“或”,表示一组可选的字符
- grep命令由选项、模式和文件三个部分组成的,下面是grep的基本用法
grep -c #只输出匹配的数量
grep -i #搜索是忽略大小写
grep -h #查询多文件是不显示文件名
grep -l #只列出符合匹配的文件名,而不列出具体的匹配行
grep -n #列出所有的匹配行,并显示行号
grep -s #不显示不存在或无匹配文本的错误信息
grep -v #显示不包含匹配文本的所有行
grep -w #匹配整词
grep -x #匹配整行
grep -r #递归搜索,不仅搜索当前的工作目录,而且还搜索子目录
grep -q #禁止输出任何结果,以退出状态表示搜索是否成功
grep -b #打印匹配行距文件头部的偏移量,以字节为单位
grep -o #与-b选项结合使用
grep -E #支持扩展的正则表达式
grep -F 不支持正则表达式,按照字符串的字面意思进行匹配
(模式包含空格时,要以双引号把整个模式包含起来,不然系统会默认为空格后面是文件名)
grep与正则结合使用
grep -c ^$ one.txt #搜索one.txt的空白行,只打印行数
#POSIX字符类
[:upper:] #表示大写字母[A-Z]
[:lower:] #表示小写字母[a-z]
[:digit:] #表示阿拉伯数字[0-9]
[:alnum:] #表示大小写字母和阿拉伯数字[A-Z,a-z,0-9]
[:space:] #表示空格或者tab键
[:alpha:] #表示大小写字母[A-Z,a-z]
[:cntrl:] #表示Ctrl键
grep命令族
grep:标准grep命令,支持基本正则表达式
egrep:扩展grep命令,支持基本和扩展正则表达式
fgrep:快速grep命令,不支持正则表达式
egrep命令等价于grep -E,fgrep等价于grep -F