分类: linux
2012-06-02 21:31:38
1:grep
grep代表的是通用正则表达式解析器(general regular expression parser)。我们常用find搜索文件,而使用grep在文件中搜索字符串。
grep的基本语法格式如下:
grep [options] pattern [files]
options的主要选项如下:
-c输出匹配行的数目,而不是输出匹配的行
-e启用扩展表达式
-h压缩每个输出行的普通前缀为匹配查询模式的文件名
-i忽略大小写
-l只列出包含匹配行的文件名,而不是输出真正的匹配行
-v对匹配模式取反,即搜索不匹配行而不是匹配行
pattern(正则表达式表示):
常用的源字符:
. : 匹配处换行符以外的任意字符
\w : 匹配字母,数字,下划线,汉字等
\s : 匹配任意的空白符
\d : 匹配数字
\b : 匹配单词的开始或结束
^ : 匹配字符串的开始
$ : 匹配字符串的结束
\ : 字符转义,如果你想查找源字符本身的话,必须使用\来取消这些字符的特殊含义。
常用的限定符:
*: 重复0次或更多次
: 重复1次或更多次
? : 重复0次或一次
{n} : 重复n次
{n,}: 重复n次或更多次
{n,m}: 重复n到m次
查找字符集合:
[] : 指定字符的范围
分支:
| :匹配分支时,将会从右到左测试每个条件,如果满足满足某个分支的话,就不会在管其它的额条件了。
子表达式:
() : 用来分组
反义:
\w : 匹配任意不是数字,下划线,汉字字母的字符
\s : 匹配任意不是空白符的字符
\d : 匹配任意不是非数字的zifu
\b : 匹配不是单词开头或结束的位置
[^x] : 匹配除了x以外的任意字符
[^aeiou]:匹配除了元音字符以外的任意字符
实例:
1:grep e$ x
在文件中查找以e结尾的行。
2:grep -e [a-z]\{10\} x
在文件x中查找正好有10个字符的行。
2:less
当所要显示的文件超过一屏的时候,less就非常有用。
下面是一个常用的例子:
objdump -d a.o | less
如果没有less,它会把a.o的全部可执行汇编内容显示出来,如果这一块内容比较多,就只能看到最后一屏,非常不方便,利用管道和less实现分屏显示。