linux grep命令

基本格式

grep pattern [file...]

(1)grep 搜索字符串 [filename]

(2)grep 正则表达式 [filename]

在文件中搜索所有 pattern 出现的位置, pattern 既可以是要搜索的字符串,也可以是一个正则表达式.

注意:在输入要搜索的字符串时最好使用双引号/而在模式匹配使用正则表达式时,注意使用单引号

2,grep的选项

-c 只输出匹配行的计数

-i 不区分大小写(用于单字符)

-n 显示匹配的行号

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

-s 不显示错误信息

-E 使用扩展正则表达式

    更多的选项请查看:man grep

3,常用grep实例

(1)多个文件查询

grep "sort" *.doc       #见文件名的匹配

(2)行匹配:输出匹配行的计数

grep -c "48" data.doc   #输出文档中含有48字符的行数

(3)显示匹配行和行数

grep -n "48" data.doc       #显示所有匹配48的行和行号

(4)显示非匹配的行

grep -vn "48" data.doc      #输出所有不包含48的行

(4)显示非匹配的行

grep -vn "48" data.doc      #输出所有不包含48的行

(5)大小写敏感

grep -i "ab" data.doc       #输出所有含有ab或Ab的字符串的行

4, 正则表达式的应用

(1)正则表达式的应用 (注意:最好把正则表达式用单引号括起来)

grep '[239].' data.doc      #输出所有含有以2,3或9开头的,并且是两个数字的行

(2)不匹配测试

grep '^[^48]' data.doc      #不匹配行首是48的行

(3)使用扩展模式匹配

grep -E '219|216' data.doc

(4) ...

#显示匹配某个结果的前三行和后三行,使用 -C 选项: seq 10 | grep "5" -C 3

5, 使用类名

可以使用国际模式匹配的类名:

[[:upper:]]   [A-Z]

[[:lower:]]   [a-z]

[[:digit:]]   [0-9]

[[:alnum:]]   [0-9a-zA-Z]

[[:space:]]   空格或tab

[[:alpha:]]   [a-zA-Z]

(1)使用

grep '5[[:upper:]][[:upper:]]' data.doc     #查询以5开头以两个大写字母结尾的行

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注