因为芯片前端涉及到很多脚本的使用,目的是调用脚本对文本的操作。常用的脚本文件有makefile, perl, tcl, python.
而了解到grep是一个linux下强大的文本搜索工具。这个命令能帮我们按照正则表达式搜索文本,然后打印出来。
命令格式
grep "match_pattern" filename # 意思是指在filename里检索"match_pattern"这个文本+
正则表达式总结
下面按照用法分为5类
- 与行首尾有关
^放前面表示行首, $放后面表示行尾。
符号 |
用法 |
^ |
锚定行的开始 如:'^grep'匹配所有以grep开头的行 |
$ |
锚定行的结束 如:'grep$' 匹配所有以grep结尾的行 |
- 与匹配字符有关。
.表示任意字符, 表示先前字符。所以.表示任意字符。
符号 |
用法 |
. |
匹配一个非换行符的字符 如:'gr.p'匹配gr后接一个任意字符,然后是p |
* |
匹配零个或多个先前字符 如:'*grep'匹配所有一个或多个空格后紧跟grep的行 |
.* |
一起用代表任意字符 |
- 与匹配的范围有关。
用方括号表示字符的范围,只要hit一个就算命中。这里用^表示取反。(这个逻辑有点反人类)
符号 |
用法 |
[] |
匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep |
[^] |
匹配一个不在指定范围内的字符,如:'[^A-Z]rep' 匹配不包含 A-Z 中的字母开头,紧跟 rep 的行 |
- 与字符重复次数有关。
符号 |
用法 |
x |
重复字符x,m次,如:'0{5}'匹配包含5个0的行 |
x |
重复字符x,至少m次,如:'o{5,}'匹配至少有5个o的行 |
x |
重复字符x,至少m次,不多于n次,如:'o{5,10}'匹配5--10个o的行 |
- 不常用,因为grep要找的字符都很明确,
符号 |
用法 |
\w |
匹配文字和数字字符,也就是[A-Za-z0-9],如:'G\w*p'匹配以G后跟零个或多个文字或数字字符,然后是p |
\W |
\w的反置形式,匹配一个或多个非单词字符,如点号句号等 |
总结:上面总结了正则表达式的用法,包括行首行尾,通用字符,字符范围,字符重复次数。虽然查找文本时,文本都很明确,但是学习正则表达式的常用用法也十分有必要。后面会总结perl, python, tcl等脚本。
参考文章