Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2794326
  • 博文数量: 471
  • 博客积分: 7081
  • 博客等级: 少将
  • 技术积分: 5369
  • 用 户 组: 普通用户
  • 注册时间: 2012-01-04 21:55
文章分类

全部博文(471)

文章存档

2014年(90)

2013年(69)

2012年(312)

分类: LINUX

2013-02-23 16:49:32


使用grep搜索文件内容——快捷、方便

 

1.作用
    grep命令可以指定文件中搜索特定的内容,并将含有这些内容的行标准输出。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。

2.格式

    grep [options]

基本格式
grep pattern [file...]
(1)grep
搜索字符串 [filename]
(2)grep
正则表达式 [filename]
在文件中搜索所有 pattern 出现的位置, pattern 既可以是要搜索的字符串,也可以是一个正则表达式.
注意:在输入要搜索的字符串时最好使用双引号/而在模式匹配使用正则表达式时,注意使用单引号
3.主要参数
[options]主要参数:

c:只输出匹配行的计数。
I:不区分大小写(只适用于单字符)。
h:查询多文件时不显示文件名。
l:查询多文件时只输出包含匹配字符的文件名。
n:显示匹配行及行号。
s:不显示不存在或无匹配文本的错误信息。
v:显示不包含匹配文本的所有行。

注:有的时候n将失效
pattern正则表达式主要参数:正则表达式的应用 (注意:最好把正则表达式用单引号括起来)
\:忽略正则表达式中特殊字符的原有含义。

^:匹配正则表达式的开始行。

$: 匹配正则表达式的结束行。

<:从匹配正则表达式的行开始。

>:到匹配正则表达式的行结束。

[ ]:单个字符,如[A]A符合要求 。

[ - ]:范围,如[A-Z],即ABC一直到Z都符合要求 。

。:所有的单个字符。
* :有字符,长度可以为0

下面还有一些有意思的命令行参数:

grep -i pattern files :不区分大小写地搜索。默认情况区分大小写,

grep -l pattern files :只列出匹配的文件名,

grep -L pattern files :列出不匹配的文件名,

grep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配’magic’,而不是’magical)

grep -C number pattern files :匹配的上下文分别显示[number]行,

grep pattern1 | pattern2 files :显示匹配 pattern1 pattern2 的行,

grep pattern1 files | grep pattern2 :显示既匹配 pattern1 又匹配 pattern2 的行。

grep -n pattern files  即可显示行号信息

grep -c pattern files  即可查找总行数


    正则表达式是Linux/Unix系统中非常重要的概念。正则表达式(也称为“regex”“regexp”)是一个可以描述一类字符串的模式(Pattern)。如果一个字符串可以用某个正则表达式来描述,我们就说这个字符和该正则表达式匹配(Match)。这和DOS中用户可以使用通配符“*”代表任意字符类似。在Linux系统上,正则表达式通常被用来查找文本的模式,以及对文本执行搜索-替换操作和其它功能。


1、grep 搜索字符串 [filename]

 

使用以下文本创建一个名为 grep.txt 的文件:

I like golf.

Golf is played on grass.

I created gilf.

 

1、在 grep.txt 文件中搜索字符串 golf 的所有实例,并输出包含该字符串的行

grep golf grep.txt

I like golf.

grep -n "golf" grep.txt

1:I like golf.

 

2、grep 正则表达式 [filename]

grep -n '[gG]olf' grep.txt

1:I like golf.

2:Golf is played on grass.


阅读(4273) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~