Shell 查看文件
在标准输出设备上查看文件
cat
将文件拼接至标准输出设备
cat file1 file2
将文件与其它文件并接
cat file1 file2>file3 这里利用了输出结果 stdout 重定向的命令“>”.
拼接文件,并给文件加上行号
cat -n file1 file2 与 cat 命令相对应,还创建了另外一个程序:tac。它的名称中的字母顺序正好与 cat 相 反。tac 的功能是:反向拼接文件。]
分屏查看文本文件
less file1 less 命令是分页器的一个例子,分页器是一个可以分页显示文本文件内容的程序。其 他的命令还有 more、pg 和 most。 less 的键盘操作命令 键盘命令 PageDn、e 或空格键 PageUp 或 b Return、e、j 或下箭头键 y、k 或上箭头键 G或p IG Esc-)或又箭头 Esc-(或左箭头 Q 显示行号,用 less -N file1 操 作 前进一页 后退一页 前进一行 后退一行 前进到文件的结尾 回到文件的开始 向右滚动 向左滚动 退出 less
Shell 查看文件
在分页器中搜索
less 的搜索命令 键盘命令 /搜索模式 n N 操 作 向前搜索使用正则表达式来表示的模式 向前重复搜索 向后重复搜索
在分页查看文件是进行编辑
less 本身并不是编辑器,它只是一个查看器,但是可以通过按 v 键,将使用 less 正在查 看的文件传递给文本编辑器(如 vim 或 nano),进行编辑处理。先用 less 查看一个文件, 然后按 v 键。一辆秒钟以后,less 界面消失,出现一个全屏的文本编辑器。 如果你不喜欢使用按 v 键时出现的那个编辑器,也可以将它改为自己选择的编辑器。 例如,如果你想使用 vim,在使用 less 之前运行以下命令: $ export EDITOR=vim 每个会话(session)只需要运行一次上述命令,之后每次打开 less,vim 就是默认的编 辑器。但是如果结束会话,下次就需要再输入 export 命令,这很快就会让人感到厌烦。 更好的做法是将下面这条命令添加到.bashrc 文件中,这样每次启动新的会话时都可以 自动应用这一配置: export EDITOR=vim
查看文件的前 10 行内容
head file1
查看多个文件的前 10 行内容
head file1 file
grep、fgrep 和 egrep 命令--Linux 文件内容查询命令
楼主 发表于 昨天 15:01 | 只看该作者 | 倒序看帖 | 打印 | 使用道具
[color=rgb(0,0,0)]grep、fgrep [p=20, null, left]Linux 2010-07-15 18:59:25 阅读 33 评论 0 字号:大中小 [url=]订阅[/url]
和 egrep 命令--Linux 文件内容查询命令
grep 命令一次只能搜索一个指定的模式; egrep 命令检索扩展的正则表达式(包括表达式组和可选项); fgrep 命令检索固定字符串,它不识别正则表达式,是快速搜索命令。
语法: grep [选项] [查找模式] [文件名 1,文件名 2,……] egrep [选项] [查找模式] [文件名 1,文件名 2,……] fgrep [选项] [查找模式] [文件名 1,文件名 2,……] 这组命令各选项的含义为: - E 每个模式作为一个扩展的正则表达式对待。 - F 每个模式作为一组固定字符串对待(以新行分隔),而不作为正则表达式。 - b 在输出的每一行前显示包含匹配字符串的行在文件中的字节偏移量。 - c 只显示匹配行的数量。 - i 比较时不区分大小写。 - h 在查找多个文件时,指示 grep 不要将文件名加入到输出之前。 - l 显示首次匹配串所在的文件名并用换行符将其隔开。当在某文件中多次出现匹配串 时,不重复显示此文件名。 - n 在输出前加上匹配串所在行的行号(文件首行行号为 1)。 - v 只显示不包含匹配串的行。 - x 只显示整行严格匹配的行。 - e expression 指定检索使用的模式。 用于防止以“-”开头的模式被解释为命令选项。 - f expfile 从 expfile 文件中获取要搜索的模式,一个模式占一行 注意以下方面: 在命令后键入搜索的模式,再键入要搜索的文件。其中,文件名列表中也可以使用特殊 字符,如“*”等,用来生成文件名列表。如果想在搜索的模式中包含有空格的字符串,可 以用单引号把要搜索的模式括起来, 用来表明搜索的模式是由包含空格的字符串组成。 否则, Shell 将把空格认为是命令行参数的定界符,而 grep 命令将把搜索模式中的单词解释为文 件名列表中的一部分。在下面的例子中,grep 命令在文件 example 中搜索模式“text file”。 $ grep ’text file’ example 用户可以在命令行上用 Shell 特殊字符来生成将要搜索的文件名列表。在下面的例子
中,特殊字符“*”用来生成一个文件名列表,该列表包含当前目录下所有的文件。该命令 将搜索出当前目录下所有文件中与模式匹配的行。 $ grep data * 特殊字符在搜索一组指定的文件时非常有用。 例如, 如果想搜索所有的 C 程序源文件中 特定的模式,您可以用“*.c”来指定文件名列表。假设用户的 C 程序中包含一些不必要的 转向语句 (goto 语句) 想要找到这些语句, , 可以用如下的命令来搜索并显示所有包含 goto 语句的代码行: $ grep goto *.c 用户可以在命令行上键入搜索模式,也可以使用-f 选项从指定文件中读取要搜索的模 式。在文件中,每个搜索模式占一行。如果经常要搜索一组常见字符串时,这个功能非常有 用。在下面的例子中,用户要在文件 exam 中搜索字符串“editor”和“create”,就把要 搜索的模式放置在文件 mypats 中,然后,grep 命令从文件 mypats 中读取要搜索的模式。 $ cat mypats editor create $ grep -f mypats exam
⑵ linux常用命令
1.列出文件清单命令:ls
ls命令能够列出当前目录下的所有内容。ls 命令的执行方式为:
# ls [-选项] [文件名或者目录名]
进入到Linux命令行中后,我们至少要知道当前所处的位置有哪些内容,这些信息就可以使用ls命令来获得。
在Linux中,ls命令是最常使用的命令之一,因为在命令行下要随时查看目录内容。如果不加任何选项的话,ls命令仅列出当前目录下的文件和目录名,例如,想要查看/etc目录下的内容,可以使用下列命令:
# ls /etc
如果想要列出当前目录下所有文件,则可以使用下列命令:
# ls -a
2、cat命令
功能:在标准输出上显示文件。
语法:cat [-vTEuAte] 文件
例子: cat example.txt
cat -A exam2.txt
cat file1 file2 > file2
3、more命令
功能:在终端屏幕按屏显示文本文件。
语法: more [-pcdls] 文件
例子: more example.c
more -dc example.c
more -c -10 example.c
4、less命令
less命令的功能几乎和more命令一样,也是用来按页显示文件,不同之处在于less命令在显示文件时允许用户既
可以向前又可以向后翻阅文件。
5、head命令
功能:显示指定文件的前若干行。缺省设置为显示10行
语法:head [-n] 文件
例子: head example.c
head -3 example.c
6、tail命令
功能:显示指定文件的末尾若干行。缺省设置为显示10行
语法:tail [+ / - num ] [参数] 文件
+num 从第num行以后开始显示。- num 从距文件尾num行处开始显示。
例子: tail example.c
tail -4 example.c
7、grep、fgrep和egrep命令
功能:
这组命令以指定模式搜索文件,并通知用户在什么文件中搜索到与指定的模式匹配的字符串,并打印出所有包含该字符串的文本行,在该文本行的最前面是该行所在的文件名。grep命令一次只能搜索一个指定的模式;egrep命令检索扩展的正则表达式(包括表达式组和可选项);fgrep命令检索固定字符串,它不识别正则表达式,是快速搜索命令。
语法:
grep [-EFbcihlnvxef] [查找模式] [文件名1,文件名2,……]
egrep [选项] [查找模式] [文件名1,文件名2,……]
fgrep [选项] [查找模式] [文件名1,文件名2,……]
例子: grep "text file" example
grep data *
grep goto *.c
⑶ grep命令详解
linux grep命令:
<p fc05="" fc11="" nbw-blog="" ztag="" js-fs2"="">
1、作用
Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression print,表示全局正则表达式版本,它的使用权限是所有用户。
2、格式
grep [options]
3、主要参数
[options]主要参数:
-c:只输出匹配行的计数。
-I:不区分大 小写(只适用于单字符)。
-h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。
-n:显示匹配行及 行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所有行。
pattern正则表达式主要参数:
: 忽略正则表达式中特殊字符的原有含义。
^:匹配正则表达式的开始行。
$: 匹配正则表达式的结束行。
<:从匹配正则表达 式的行开始。
>:到匹配正则表达式的行结束。
[ ]:单个字符,如[A]即A符合要求 。
[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
。:所有的单个字符。
* :有字符,长度可以为0。
4.grep命令使用简单实例
$ grep ‘test’ d*
显示所有以d开头的文件中包含 test的行。
$ grep ‘test’ aa bb cc
显示在aa,bb,cc文件中匹配test的行。
$ grep ‘[a-z]{5}’ aa
显示所有包含每个字符串至少有5个连续小写字符的字符串的行。
$ grep ‘w(es)t.*1′ aa
(3)egrep命令扩展阅读:
egrep 命令,搜索文件获得模式。egrep 命令会在输入文件(缺省值为标准输入)中搜索与Pattern 参数指定的模式相匹配的行。这些模式是完整的正则表达式就像在 ed 命令中的那样(除了 (反斜杠)和 \ (双反斜杠))。下列规则也应用于 egrep 命令:
一个正则表达式后面带一个 + (加号)会匹配一个或多个的正则表达式,一个正则表达式后面带一个 ? (问号)会匹配零个或一个该正则表达式,由 | (竖线)或者换行符隔开的多个正则表达式会匹配与任何一个正则表达式所匹配的字符串。
一个正则表达式可以被包括在“()”(括号)中进行分组,换行符将不会被正则表达式匹配,运算符的优先顺序是 [, ], *, ?, +, 合并, | 和换行符。
注意: egrep 命令与 grep 命令带 -E 标志是一样的,除了错误消息和使用消息不同以及 -s 标志的功能不同之外,egrep 命令会显示包含该匹配行的文件,如果指定了多于一个 File 参数的话。
参考资料:网络—GREP
参考资料:网络—linux命令
⑷ linux里grep和egrep,fgrep的区别
1. grep简介
grep (global search regular expression_r(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。Unix的grep家族包括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。egrep是grep的扩展,支持更多的re元字符, fgrep就是fixed grep或fast grep,它们把所有的字母都看作单词,也就是说,正则表达式中的元字符表示回其自身的字面意义,不再特殊。linux使用GNU版本的grep。它功能更强,可以通过-G、-E、-F命令行选项来使用egrep和fgrep的功能。
grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名。搜索的结果被送到屏幕,不影响原文件内容。
grep可用于shell脚本,因为grep通过返回一个状态值来说明搜索的状态,如果模板搜索成功,则返回0,如果搜索不成功,则返回1,如果搜索的文件不存在,则返回2。我们利用这些返回值就可进行一些自动化的文本处理工作。
2. grep正则表达式元字符集(基本集)
^
锚定行的开始 如:'^grep'匹配所有以grep开头的行。
$
锚定行的结束 如:'grep$'匹配所有以grep结尾的行。
.
匹配一个非换行符的字符如:'gr.p'匹配gr后接一个任意字符,然后是p。
*
匹配零个或多个先前字符如:'*grep'匹配所有一个或多个空格后紧跟grep的行。 .*一起用代表任意字符。
[]
匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep。
[^]
匹配一个不在指定范围内的字符,如:'[^A-FH-Z]rep'匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行。
..
标记匹配字符,如'love',love被标记为1。
\<
锚定单词的开始,如:'\<grep'匹配包含以grep开头的单词的行。
\>
锚定单词的结束,如'grep\>'匹配包含以grep结尾的单词的行。
x\{m\}
重复字符x,m次,如:'0\{5\}'匹配包含5个o的行。
x\{m,\}
重复字符x,至少m次,如:'o\{5,\}'匹配至少有5个o的行。
x\{m,n\}
重复字符x,至少m次,不多于n次,如:'o\{5,10\}'匹配5--10个o的行。
\w
匹配文字和数字字符,也就是[A-Za-z0-9],如:'G\w*p'匹配以G后跟零个或多个文字或数字字符,然后是p。
\W
\w的反置形式,匹配一个或多个非单词字符,如点号句号等。
\b
单词锁定符,如: '\bgrep\b'只匹配grep。
3. 用于egrep和 grep -E的元字符扩展集
+
匹配一个或多个先前的字符。如:'[a-z]+able',匹配一个或多个小写字母后跟able的串,如loveable,enable,disable等。
?
匹配零个或多个先前的字符。如:'gr?p'匹配gr后跟一个或没有字符,然后是p的行。
a|b|c
匹配a或b或c。如:grep|sed匹配grep或sed
()
分组符号,如:love(able|rs)ov+匹配loveable或lovers,匹配一个或多个ov。
x{m},x{m,},x{m,n}
作用同x\{m\},x\{m,\},x\{m,n\}
linux基本命令grep egrep fgrep用法以及正则表达式
一、grep、egrep、fgrep命令
本文中主要介绍了linux系统下grep egrep fgrep命令和正则表达式的基本参数和使用格式、方法。(注释:文中fg代表例子,)
1.1、基本定义:
grep(global search regular RE ) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它只能使用基本的正则表达式来搜索文本,并把匹配的行打印出来。
grep是很常见也很常用的命令,它的主要功能是进行字符串数据的比较,然后符合用户需求的字符串打印出来,但是主意,grep在数据中查找一个字符串时,是以“整行”为单位进行数据筛选的。
egrep命令等同于grep -E,利用此命令可以使用扩展的正则表达式对文本进行搜索,并把符合用户需求的字符串打印出来。
fgrep命令等同于grep -F,它利用固定的字符串来对文本进行搜索,但不支持正则表达式的引用,所以此命令的执行速度也最快。
1.2、命令基本用法
grep [option] '搜索字符串' filename
grep常用选项:
-a :在二进制文件中,以文本文件的方式搜索数据
-c :计算找到'搜索字符串'的次数
-i :忽略大小写
-v :反向查找,即显示没有'搜索字符串'内容的那行
-o :只显示被模式匹配的字符串
-n :输出行号
--colour(color):颜色显示
-A:显示匹配到字符那行的后面n行
-B:显示匹配到字符那行的前面n行
-C:显示匹配到字符那行的前后n行
例子:
1. :
格式: grep [option] pattern filename 注意: pattern如果是表达式或者超过两个单词的, 需要用引号引用. 可以是单引号也可双引号, 区别是单引号无法引用变量而双引号可以.
grep '\<Tom\>' file 包含单词Tom的行
grep 'Tom savage' file 包含Tom savage的行
grep '^Tommy' file 包含以Tommy开头的行
grep '\.bak$' file 包含以.bak结束的行
grep '[Pp]yramid' file 包含pyramid 或Pyramid的单词的行
grep '[A-Z]' file 包含至少一个大写字母的行
grep '[0-9]' file 包含至少一个数字的行
grep '[A-Z]...[0-9]' file 包含五个字符,以大写开头, 和一个数字结尾的行.
grep -w '[tT]est' file 包含单词和test的行.
grep -s 'ken sun' file 找到包含ken sun的行, 但不打印行, 而是用来检查退出状态.
grep -v aaa file 打印不包含aaa的行.
grep -i cathy file 打印所有包含cathy的行, 而不考虑大小些.
grep -l 'dear cathy' * 打印包含dear cathy的文件的文件名清单.
grep -n tom file 打印匹配的行并追加行号.
grep "$LOGNAME" file 包含变量内容的行, 注意必须用双引号, 单引号则无法引用变量.
grep '$name' file 打印包含字符$name的行.
2 : egrep = grep -E 可以使用基本的正则表达外, 还可以用扩展表达式. 注意区别.
扩展表达式:
+ 匹配一个或者多个先前的字符, 至少一个先前字符.
? 匹配0个或者多个先前字符.
a|b|c 匹配a或b或c
() 字符组, 如: love(able|ers) 匹配loveable或lovers.
(..)(..)\1\2 模板匹配. \1代表前面第一个模板, \2代第二个括号里面的模板.
x{m,n} =x\{m,n\} x的字符数量在m到n个之间.
egrep '^+' file 以一个或者多个空格开头的行.
grep '^*' file 同上
egrep '(TOM|DAN) SAVAGE' file 包含 TOM SAVAGE 和DAN SAVAGE的行.
egrep '(ab)+' file 包含至少一个ab的行.
egrep 'x[0-9]?' file 包含x或者x后面跟着0个或者多个数字的行.
egrep 'fun\.$' * 所有文件里面以fun.结尾的行.
egrep '[A-Z]+' file 至少包含一个大写字母的行.
egrep '[0-9]' file 至少一个数字的行.
egrep '[A-Z]...[0-9]' file 有五个字符, 第一个式大写, 最后一个是数字的行.
egrep '[tT]est' file 包含单词test或Test的行.
egrep 'ken sun' file 包含ken sun的行.
egrep -v 'marry' file 不包含marry的行.
egrep -i 'sam' file 不考虑sam的大小写,含有sam的行.
egrep -l "dear ken" * 包含dear ken的所有文件的清单.
egrep -n tom file 包含tom的行, 每行前面追加行号.
egrep -s "$name" file 找到变量名$name的, 不打印而是显示退出状态. 0表示找到. 1表示表达式没找到符合要求的, 2表示文件没找到.
3 fgrep 很简单就是固化表达式的搜索.如:
fgrep "$name...[a-z]" file 就是在file里面找到和字符$name...[a-z]一样的行. 其中$和...等没有转义的意义.
http://hi..com/sei_zhouyu/item/c18e1a950d2e9eb5cc80e558
望采纳
⑸ linux查看较长或较短的纯文本文件使用哪些命令
在命令行里显示文本文件内容:
cat:在命令行里显示文本文件内容,可以滚屏的(但是不方便把内容输出到其他文件,所以一般脚本内部都用cat,less可以在调用脚本的时候用)。
less:在命令行里编辑文本文件。
vi:在图形界面打开文本文件。
gedit,kate等等:在图形界面打开任意文件或者url(gnome)。
命令作用
grep、fgrep和egrep命令这组命令以指定模式搜索文件,并通知用户在什么文件中搜索到与指定的模式匹配的字符串,并打印出所有包含该字符串的文本行,在该文本行的最前面是该行所在的文件名。grep命令一次只能搜索一个指定的模式;egrep命令检索扩展的正则表达式(包括表达式组和可选项);fgrep命令检索固定字符串,它不识别正则表达式,是快速搜索命令。
⑹ grep和| grep的区别
grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名。搜索的结果被送到屏幕,不影响原文件内容。
grep可用于shell脚本,因为grep通过返回一个状态值来说明搜索的状态,如果模板搜索成功,则返回0,如果搜索不成功,则返回1,如果搜索的文件不存在,则返回2。我们利用这些返回值就可进行一些自动化的文本处理工作。
Grep命令中允许指定的串语句是一个规则表达式,这是一种允许使用某些特殊键盘字符的指定字符串的方法,这种方法中的特殊键盘字符可以用于代表其他字符也可以进一步定义模式匹配工作方式。例如:grep ".*hood" essay1。该命令将在文件essay1中搜索,显示出包含带有字符串hood的字的每一行。命令行中的点表示的是hood之前可以有任意字符,星号指的是在字符串之前点号所表示的任意字符可以有任意个(其中的双引号是可有可无的,但是当语句中包含短语或者空格时就必须加双引号)。 -l 列出文件内容符合指定的范本样式的文件名称。
同理more和| more也是一样。
(6)egrep命令扩展阅读:
GREP
表达符集
编辑
^
锚定行的开始 如:'^grep'匹配所有以grep开头的行。
$
锚定行的结束 如:'grep$'匹配所有以grep结尾的行。
.
匹配一个非换行符(' ')的字符如:'gr.p'匹配gr后接一个任意字符,然后是p。
*
匹配零个或多个先前字符 如:' *grep' (注意*前有空格)匹配所有零个或多个空格后紧跟grep的行,需要用egrep 或者grep带上 -E 选项。 .*一起用代表任意字符。
[]
匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep。
[^]
匹配一个不在指定范围内的字符,如:'[^A-FH-Z]rep'匹配不包含A-F和H-Z的一个字母开头,紧跟rep的行。
(..)
标记匹配字符,如'(love)',love被标记为1。
<
锚定单词的开始,如:'<grep'匹配包含以grep开头的单词的行。
>
锚定单词的结束,如'grep>'匹配包含以grep结尾的单词的行。
x{m}
重复字符x,m次,如:'o{5}'匹配包含5个o的行。
x{m,}
重复字符x,至少m次,如:'o{5,}'匹配至少有5个o的行。
x{m,n}
重复字符x,至少m次,不多于n次,如:'o{5,10}'匹配5--10个o的行。
w
匹配文字和数字字符,也就是[A-Za-z0-9],如:'Gw*p'匹配以G后跟零个或多个文字或数字字符,然后是p。
W
w的反置形式,匹配一个或多个非单词字符,如点号句号等。
单词锁定符,如: 'grep'只匹配grep。[6]
用于egrep和 grep -E的元字符扩展集
+
匹配一个或多个先前的字符。如:'[a-z]+able',匹配一个或多个小写字母后跟able的串,如loveable,enable,disable等。
?
匹配零个或一个先前的字符。如:'gr?p'匹配gr后跟一个或没有字符,然后是p的行。
a|b|c
匹配a或b或c。如:grep|sed匹配grep或sed
()
分组符号,如:love(able|rs)ov+匹配loveable或lovers,匹配一个或多个ov。
POSIX字符类
为了在不同国家的字符编码中保持一至,POSIX(The Portable Operating System Interface)增加了特殊的字符类,如[:alnum:]是A-Za-z0-9的另一个写法。要把它们放到[]号内才能成为正则表达式,如[A- Za-z0-9]或[[:alnum:]]。在linux下的grep除fgrep外,都支持POSIX的字符类。
[:alnum:]
文字数字字符
[:alpha:]
文字字符
[:digit:]
数字字符
[:graph:]
非空字符(非空格、控制字符)
[:lower:]
小写字符
[:cntrl:]
控制字符
[:print:]
非空字符(包括空格)
[:punct:]
标点符号
[:space:]
所有空白字符(新行,空格,制表符)
[:upper:]
大写字符
[:xdigit:]
十六进制数字(0-9,a-f,A-F)
命令选项
编辑
-?
同时显示匹配行上下的?行,如:grep -2 pattern filename同时显示匹配行的上下2行。
-a, --text
等价于匹配text,用于(Binary file (standard input) matches)报错
-b,--byte-offset
打印匹配行前面打印该行所在的块号码。
-c,--count
只打印匹配的行数,不显示匹配的内容。
-f File,--file=File
从文件中提取模板。空文件中包含0个模板,所以什么都不匹配。
-h,--no-filename
当搜索多个文件时,不显示匹配文件名前缀。
-i,--ignore-case
忽略大小写差别。
-o, --only-matching
只显示正则表达式匹配的部分。(show only the part of a line matching PATTERN)
-q,--quiet
取消显示,只返回退出状态。0则表示找到了匹配的行。
-l,--files-with-matches
打印匹配模板的文件清单。
-L,--files-without-match
打印不匹配模板的文件清单。
-n,--line-number
在匹配的行前面打印行号。
-s,--silent
不显示关于不存在或者无法读取文件的错误信息。
-v,--revert-match
反检索,只显示不匹配的行。
-w,--word-regexp
如果被<和>引用,就把表达式做为一个单词搜索。
-R, -r, --recursive
递归的读取目录下的所有文件,包括子目录。 比如grep -R 'pattern' test会在 test 及其子目录下的所有文件中,匹配 pattern。
-V,--version
显示软件版本信息。
-A6
查找某些字符的内容,并下延伸6行
-B6
查找某些字符的内容,并上延伸6行
-C1
查找某些字符的内容,并上和向下各延伸1行
这几行后面的数字直接影响延伸数量,并以--符号分割搜索行的结果
实例
编辑
要用好grep这个工具,其实就是要写好正则表达式,所以这里不对grep的所有功能进行实例讲解,只列几个例子,讲解一个正则表达式的写法。
$ ls -l | grep '^a'
通过管道过滤ls -l输出的内容,只显示以a开头的行。
$ grep 'test' d*
显示所有以d开头的文件中包含test的行。
$ grep 'test' aa bb cc
显示在aa,bb,cc文件中匹配test的行。
$ grep '[a-z]{5}' aa
显示所有包含每个字符串有5个连续小写字符的字符串的行。
$ grep 'w(es)t.*1' aa
如果west被匹配,则es就被存储到内存中,并标记为1,然后搜索任意个字符(.*),这些字符后面紧跟着另外一个es(1),找到就显示该行。如果用egrep或grep -E,就不用""号进行转义,直接写成'w(es)t.*1'就可以了。
注意
编辑
在某些机器上,要使用-E参数才能够进行逻辑匹配(详见下)
grep "a|b" (匹配包含字符样式为"a|b"的行)
grep -E "a|b" (匹配包含字符样式为"a"或"b"的行)
man grep里面关于-E参数的说明是
-E
Treats each pattern specified as an extended regular expression (ERE). A NULL value for the ERE matches every line.
Note: The grep command with the -E flag is the same as the egrep command, except that error and usage messages are different and the -s flag functions differently.
拓展命令
编辑
egrep 命令,搜索文件获得模式。
egrep 命令会在输入文件(缺省值为标准输入)中搜索与用 Pattern 参数指定的模式相匹配的行。这些模式是完整的正则表达式就像在 ed 命令中的那样(除了 (反斜杠)和 \ (双反斜杠))。下列规则也应用于 egrep 命令:
* 一个正则表达式后面带一个 + (加号)会匹配一个或多个的正则表达式。
* 一个正则表达式后面带一个 ? (问号)会匹配零个或一个该正则表达式。
* 由 | (竖线)或者换行符隔开的多个正则表达式会匹配与任何一个正则表达式所匹配的字符串。
* 一个正则表达式可以被包括在“()”(括号)中进行分组。
换行符将不会被正则表达式匹配。
运算符的优先顺序是 [, ], *, ?, +, 合并, | 和换行符。
注意: egrep 命令与 grep 命令带 -E 标志是一样的,除了错误消息和使用消息不同以及 -s 标志的功能不同之外。
egrep 命令会显示包含该匹配行的文件,如果您指定了多于一个 File 参数的话。
对 shell 有特殊含义的字符($, *, [, |, ^, (, ), ) 出现在 Pattern 参数中时必须带双引号。如果 Pattern 参数不是简单字符串,通常必须用单引号将整个模式括起来。在表达式中比如 [a-z],减号表示通过当前整理序列。整理序列可以定义等价的类以供在字符范围中使用。它使用了快速确定性的算法,有时需要外部空间。[7]
fgrep命令,为文件搜索文字字符串。
fgrep命令搜索 File 参数指定的输入文件(缺省为标准输入)中的匹配模式的行。fgrep命令特别搜索 Pattern 参数,它们是固定的字符串。如果在 File 参数中指定一个以上的文件fgrep命令将显示包含匹配行的文件。
fgrep命令于 grep 和 egrep 命令不同,因为它搜索字符串而不是搜索匹配表达式的模式。fgrep命令使用快速的压缩算法。$, *, [, |, (, ) 和 等字符串被fgrep命令按字面意思解释。这些字符并不解释为正则表达式,但它们在 grep 和 egrep 命令中解释为正则表达式。
因为这些字符对于 shell 有特定的含义,完整的字符串应该加上单引号(‘ ... ’)。
如果没有指定文件,fgrep命令假定标准输入。一般,找到的每行都复制到标准输出中去。如果不止一个输入文件,则在找到的每行前打印文件名。
Unix命令行程序和内建指令(更多)
文件系统
▪cat▪cd▪chmod▪chown▪chgrp▪cksum▪cmp▪cp▪▪df▪fsck▪fuser▪ln▪ls▪lsattr▪lsof▪mkdir▪mount▪mv▪pwd▪rm▪rmdir▪split▪touch▪umask
程序
▪at▪bg▪chroot▪cron▪exit▪fg▪jobs▪kill▪killall▪nice▪pgrep▪pidof▪pkill▪ps▪pstree▪sleep▪time▪top▪wait
使用环境
▪env▪finger▪id▪logname▪mesg▪passwd▪su▪sudo▪uptime▪w▪wall▪who▪whoami▪write
文字编辑
▪awk▪comm▪cut▪ed▪ex▪fmt▪head▪iconv▪join▪less▪more▪paste▪sed▪sort▪strings▪talk▪tac▪tail▪tr▪uniq▪vi▪wc▪xargs
Shell 程序
▪alias▪basename▪dirname▪echo▪expr▪false▪printf▪test▪true▪unset
网络
▪inetd▪netstat▪ping▪rlogin▪netcat▪traceroute
搜索
▪find▪grep▪locate▪whereis▪which
杂项
▪apropos▪banner▪bc▪cal▪clear▪date▪dd▪file▪help▪info▪size▪lp▪man▪history▪tee▪tput▪
参考资料来源:网络-GREP
⑺ 在shell脚本中,egrep 有什么用和grep有什么区别 回答就简单些,太复杂弄不懂,谢谢。
grep默认不支持正则表达式,egrep默认支持正则表达式,egrep 等于 grep -E 命令。
⑻ Linux里面grep和egrep命令区别是什么
基本正则表达式(grep)和拓展正则表达式(egrep)。
而grep和egrep同属于文本搜索工具,可根据用户指定的文本模式(搜索条件)对目标文件进行逐行搜索,显示能匹配到的行。
egrep = grep -E 可以使用基本的正则表达外, 还可以用扩展表达式. 注意区别《Linux就该这么学》.
扩展表达式:
+ 匹配一个或者多个先前的字符, 至少一个先前字符.
? 匹配0个或者多个先前字符.
a|b|c 匹配a或b或c
() 字符组, 如: love(able|ers) 匹配loveable或lovers.
(..)(..)\1\2 模板匹配. \1代表前面第一个模板, \2代第二个括号里面的模板.
x{m,n} =x\{m,n\} x的字符数量在m到n个之间.