-
功能说明:查找文件里符合条件的字符串。
语
法:
grep
[-abcEFGhHilLnqrsvVwxy][-A<
显示列数
>][-B<
显示列数
>][-C<
< br>显示列
数
>][-d<
进行动作
>][-e<
范本样式
>][-f<<
/p>
范本文件
>][--help][
范本样
式
][
文件或目录
...]
补充说明:
grep
指令用于查找内
容包含指定的范本样式的文件,如果发现某文件的内容符
合所指定的范本样式,预设
p>
grep
指令会把含有范本样式的那一列显示出来。若不指定任何<
/p>
文件名称,或是所给予的文件名为
“
-<
/p>
”
,则
grep
指令会从标准输入设备读取数据。
参
数:
-a
或
--t
ex
t
不要忽略二进制的数据。
-A<
显示列数
>
或
--after-
context=<
显示列数
>
除了显示符合范本样式的那一列之外,并
显示该列之后的内容。
-b
或
--byte-
off
set
在显示符合范本样
式的那一列之前,
标示出该列第一个字符的位编号。
-B<
显示列数
>
或
--before-
context=<
显示列数
>
除了显示符合范本样式的那一列之外,
并显示该列之前的内容。
-c
或
--count
计算符合范本样式的列数。
-C
<
显示列数
>
或
--context=<
显示列数
>
或
-<
显示列数
>
除了显示符合范本样式的那一
列之外,并显示该列之前后的内容。
-d<
进行动作
>
或
--directories=<
进
行动作
>
当指定要查找的是目录而非文件时,必须使
p>
用这项参数,否则
grep
指令将回报信息
并停止动作。
-e<
范本样式<
/p>
>
或
--regexp=<
范本样式
>
指定字符串做为查找文件内容的范本样式。
-E
或
--extended-
regexp
将范本样式为延伸的普通表示法来使用。
-f<
范本文件
>
或
--
file
=<
范本文件
>
指定范本文件,其内容含有一
个或多个范本样式,让
grep
查找符合范本条件的文件内容,
格式为每列一个范本样式。
-F
或
--fixed-regexp
将范本样式视为固定字符串的列表。
-G
或
--basic-regexp
将范本样式视为普通的表示法来使用。
-h
或
--no-
filename
在显示符合范本样式的那一列之前,不标示该列所属的文件名称
。
-H
或
--with-filename
在显示符合范本样式的那一列之前,表示该列所属的文件名称。
-i
或
--ignore-
case
忽略字符大小写的差别。
-l
或
--file-with-
matches
列出文件内容符合指定的范本样式的文件名称。
-L
或
--files-
without-match
列出文件内容不符合指定的范本样式的文件名称。
-n
或
--line-
number
在显示符合范本样式的那一列之前,标示出该列的列数编号。
-q
或
--quiet
或
--silent
不显示任何信息。
-r
或
--recursive
此参数的效果和指定
“
-d
recurse
”
参数相同。
-s
或
--no-
messages
不显示错误信息。
-v
或
--revert-
match
反转查找。
-V
或
--version
显示版本信息。
-w
或
--word-regexp
只显示全字符合的列。
-x
或
--line-regexp
只显示全列符合的列。
-y
此参数的效果和指定
“
-
i”
参数相同。
--help
在线帮助。
linux
grep
命令
的使用
用
grep
命令
搜索文本文件
来自
如果您要在几个文本文件中查找
一字符串,可以使用
&
ls
quo;g
rep?
命令。
?grep?
在文本中
搜
索指定的字符串。
假设您正在
p>
?/usr/src/linux/Documentation?
目录下搜索带字符串
?magic?
的文件:
< br>
$$ grep magic
/usr/src/linux/Documentation/*
:* How
do I
enable
the magic SysRQ
key?
:* How do I use the magic SysRQ
key?
其中文件
??
包含该字符串,讨论的是
SysRQ
的功能。
默认情况下,
?grep?
只搜索当前目录。
如果此目录下有许多
子目录,
?grep?
会以如下形式列出:
grep: sound: Is a directory
< br>这可能会使
?grep?
的输出难于阅读。这里有两种解
决的办法:
明确要求搜索子目录:
grep -r
或忽略子目录:
grep -d skip
当然,如果预料到有许多输出,您可以通过
管道
将其转到
?
less
?
上阅读
$$ grep magic
/usr/src/linux/Documentation/* | less
这样,您就可以更方便地阅读。
有一
点要注意,
您必需提供一个文件过滤方式
(搜索全部文件的话用
*
)
。
p>
如果您忘了,
?grep?
会一直等着,直
到该程序被中断。如果您遇到了这样的情况,按
,然后再试。
下面是一些有意思的命令行参数:
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 man *
会匹配
?Batman?
、
?manic?
、
?m
an?
等,
grep '
匹配
?manic?
和
?man?
,但不是
?Batman?
,
grep '
只匹配
?man?
,而不是
?
Batman?
或
?manic?
等其
他的字符串。
'^'
:指匹配的字符串在行首,
'$$'
:指匹配的字符串在行尾,
<
/p>
如果您不习惯命令行参数,
可以试试图形界面的
< br>?grep?
,
如
reXgrep
。
这个软件提供
AND
、
OR
、
< br>NOT
等语法,还有漂亮的按钮
:-)
。如果您只是需要更清楚的输出,不妨试试
fungrep
。
.grep
搜索字符串
命令格式
:
grep
s
tr
ing filename
寻
找字串的方法很多,比如说我想找所有以
M
开头的行
.
此时必须引进
pattern
< br>的观
念
.
以下是一些简单的
□
例,以及说明:
^M
以
M
开头的行,
^
表示开始的意思
M$$
以
M
结
尾的行,
$$
表示结束的意思
^[0-9]
以数字开始的行,
[]
内可列举字母
^[124ab] <
/p>
以
1,2,4,a,
或
< br>b
开头的行
^b.503
句点表示任一字母
*
星号表示
0
个以上的字母
(
可以没有
)
+
加号表示
1
个以上的字母
.
斜线可以去掉特殊意义
cat
passwd
| grep ^b
列出大学部有申请帐号者名单
cat
passwd | grep ^s
列出交换学生申请帐号者名单
cat
passwd | grep '^b.503'
列出电机系各年级
...
grep
'^.'
列出所有以句点开头的行
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. grep
简介
grep
(
global search regular
expr
ession(RE) and print out
the line,
全面搜索
正则
表达
式并
把行打印出来)
是一种强大的文本搜索工具,
它能使用
正则表达式
搜索文本,
并把匹配的行
打印出来。
Unix
的
grep
家族包
< br>括
grep
、
egrep
和
fgrep
。
eg
rep
和
fgrep
的命令只跟
grep
有很小不同。
egrep
是
grep
的扩展,支持更多的
< br>re
元字符,
fgrep
就是
fixed
grep
或
fast
grep
,
它们把所有的字母都看作单词,
也就是说,
正则表达式中的元字符表示回其自身的字
面意义,不再特殊。<
/p>
linux
使用
GNU
< br>版本的
grep
。它功能
p>
更强,可以通过
-G
、
-E
、
-F
命令
< br>行选项来使用
egrep
和
fg
rep
的功能。
grep
的工作方式是这样的,它在一个或多个文件中搜索字符串模板。如果模板包括空格,
则必须被引用,
模板后的所有字符串被看作文件名。
搜
索的结果被送到屏幕,
不影响原文件
内容。
grep
可用于
shell
p>
脚本,因为
grep
通过返回一个状态值来
说明搜索的状态,如果模板搜索
成功,则返回
0
,如果搜索不成功,则返回
1
,如果搜索的文件不存在
,则返回
2
。我们利
用这些返回值就可
进行一些自动化的文本处理工作。
2.
grep
正则表达式元字符集(基本集)
^
锚定行的开始
如:
< br>'^grep'
匹配所有以
grep
开头的行。
$$
锚定行的结束
如:
< br>'grep$$'
匹配所有以
grep
结尾的行。
匹配一个非换行符的字符
如:
'gr.p'
匹配
gr
后接一个任意字符,然后是
p
。
*
匹配零个或多个先前字符
如:
'*grep'
匹配所有一个或多个空格
后紧跟
grep
的行。
.*
一起
用代表任意字符。
[]
匹配一个指定范围内的字符,如
'[Gg]rep'
匹配
Grep
和<
/p>
grep
。
[^]
-
-
-
-
-
-
-
-
-
上一篇:外国人体格检查表 -范本
下一篇:简明国际神经精神访谈中文版MINI(WORD版)