Linux笔记——命令:grep

列表:

Linux笔记——vim常用操作及扩展补充[手册]

Linux笔记——linux常用命令集合

Linux笔记——命令:awk

Linux笔记——命令:sed

Linux笔记——命令:grep

Linux笔记——命令:find

Linux笔记——命令:Sort,uniq,join,cut,paste,split

Linux笔记——shell基础:变量&本地变量&位置变量&特定变量参数

Linux笔记——条件测试test

Linux笔记——控制流

Linux笔记——shell补充:参数传递&函数等

Linux笔记——正则表达式入门及应用

Linux笔记——linux进程

Linux笔记——SVN命令总结

rpm&yum包管理命令总结

鉴于博客,表格&排版&颜色标记等等无法显示,大家可以下载这个笔记的资源

12个文档,不需要积分,以目录+表格+颜色标记形式

下载资源地址http://download.csdn.net/detail/wklken/3815477

The end! Thx! wklken的笔记

-----------------------------------------------


命令:grep

Grep General Regular Expression Parser

【global search regular expression(RE) and print out the line】

全面搜索正则表达式并把行打印出来,是一种强大的文本搜索工具,它使用正则表达式搜索文本,并把匹配的行打印出来。

功能:

使用正则表达式搜索文本并打印匹配行

格式:

grep [options] PATTERN [Files]

注:输入字符串作为参数,最好双引号括起 “mystr”

在调用变量时,也使用双引号括起 “$MYSTR”

使用正则[匹配模式]是,应使用单引号括起 ‘49[32]’

选项

-c

只输出匹配的行数,而不输出匹配的行

-i

不区分大小写

-h

查询多个文件时不显示文件名【默认是 文件名:符合的记录行】

-l

查询多个文件时,只输出包含匹配字符的文件名

-n

显示匹配行及行号

-s

不显示不存在或无匹配文本的错误信息

-v

显示不包含匹配文本的所有行

-E

启用扩展表达式,可使用扩展元字符

 +

  匹配一个或多个先前的字符。如:'[a-z]+able',匹配一个或多个小写字母后跟able的串,如loveable,enable,disable等。

 ?

匹配零个或1个先前的字符。如:'gr?p'匹配gr后跟一个或没有字符,然后是p的行。

*

匹配0个或多个

 a|b|c

  匹配a或b或c。如:grep|sed匹配grep或sed

 ()

  分组符号,如:love(able|rs)ov+匹配loveable或lovers,匹配一个或多个ov。

 x,x{m,},x{m,n}

作用同x\{m\},x\{m,\},x\{m,n\}
{n}必须匹配n次 {n,}至少匹配n次 {n,m}匹配次数在[n,m]之间

常用示例;

1. 查询多个文件

grep “sort” *.doc 在目录下所有doc文件中查sort

grep “sort” filea fileb 在filea,fileb中查找

2. 计算匹配行数

grep –c “test” data.txt

3. 显示非匹配行

grep –v “test” data.txt

4. 忽略大小写

默认是大小写敏感的,若需要,使用-i进行忽略

grep –i “ignore” data.txt

5. 正则表示

grep ‘48[34]’ data.txt

grep ‘^[^48]’ data.txt 开头不是4,8的

grep ‘[Ss]ept’ data.txt

grep ‘^[0-9][0-5][0-6]’

grep ‘4\{2,\}’ data

6. 使用“与” “或”

必须使用参数 –E [E一定大写]

grep –E ‘aaa|bbb’ data

等价于 grep –c “[L|l]et” dream

7. 空行及特殊字符

grep ‘^$’ data

grep ‘\.’ myfile

8. 类名:

grep 允许使用国际字符串模式匹配或匹配模式的类名

[[:upper:]]

[A-Z]

[[:lower:]]

[a-z]

[[:digit:]]

[0-9]

[[:alnum:]]

[0-9a-zA-Z]

[[:space:]]

空格或tab键

[[:alpha:]]

[a-zA-Z]

grep ‘5[[:upper:]] [[:upper:]]’ data 5开头,两个大写

9. 系统grep命令

ls –l | grep ‘^d’

ls –l | grep ‘^[^d]’

grep in words.txt

grep –c in words.text words2.txt

grep –c –v in words.txt words2.txt

grep e$ words2.txt

grep a[[:blank:]] words2.txt

grep Th.[[:space:]] words2.txt


你可能感兴趣的:(Linux笔记——命令:grep)