shell编程之grep命令的使用,grep命令的使用

shell编制程序之grep命令的使用,grep命令的使用

我们在求学正则表明式早先,首先要明了一点,并把它牢牢记在心头,那即是:

在linux中,通配符是由shell解释的,而正则表明式则是由命令解释的,不要把相互搞混了。切记!!!

管见所及常有三种文本管理工科具/命令:grep、sed、awk,它们三者均能够分解正则。上边我就为大家介绍grep命令的应用方法。

 

黄金时代、使用grep命令搜索文件中的内容

grep和egrep命令能够在多个或多少个文本的剧情中搜寻某风度翩翩一定的字符形式,也被称之为正则表明式(regular
expressions)。
三个方式能够是一个单纯的字符、叁个字符串、三个单词或一个句子。

一个正则表明式是陈述少年老成组字符串的二个形式。正则表明式的三结合是模拟了数学表明式,通过动用操作符将比较小的表明式组合成二个新的表明式。四个正则表明式不仅可以是有的纯文本文字,也足以是用来发出方式的有些特殊字符。为了进一层定义叁个找寻情势,grep命令援救以下二种正则表明式的元字符,也称通配符。

ps:正则表达式语言由二种基本字符类型组成:原义(符合规律)文本字符和元字符。元字符使正则表明式具备管理技巧。所谓元字符正是指那个在正则表明式中存有优秀意义的专项使用字符,能够用来分明其指点字符(即坐落于元字符前边的字符)在对象对象中的现身格局。

c*:将相称0个或八个字符c

.:将极其任何多个且只可以是一个字符(换行符除此之外)

[xyz]:将万分方括号中的率性一个字符

[^xyz]:将分外不包涵方括号中的字符的具备字符

^:锁定行的伊始

$:锁定行的末梢

在中央正则表明式中,如元字符*、+、{}、|、和()已经遗失了它们原本的含义,如若要恢复他们本来的意义要在在此以前冠以反斜线,如*、+等。

grep命令是用来在每多少个文本中或正式输出上查找一定的形式。当使用grep命令时,富含三个点名字符格局的每意气风发行都会被打字与印刷在显示器上,grep命令的语法格式如下:

grep 选项 模式 文件名

里面,选项能够改正grep命令的寻找情势,除了-w选项外,别的的各样选项都得以在egrep和fgrep命令中使用。grep命令常用选项如下:

-c(count):仅列出含有形式的行数

-i(ignore):忽视情势中字母大小写

-l(list):列出带有相配行的公文名

-n:在相配行的日前列骑行号

-v:列出未有相配情势的行(取反)

-w:把表达式充作八个安然依旧的单字来搜索,忽视那个部分相称的行

-q
 :静默方式,未有其余输出,得用$?来判断实践成功并未有,即有未有过滤到想要的内容

-A n  :要是合营成功,则将相称行及未来n行一齐打字与印刷出来

-B n  :如若合作成功,则将相称行及其前n行一同打字与印刷出来

-C n  :假诺同盟成功,则将相称行及其左右n行一齐打字与印刷出来

ps:借使搜索的是多少个文本,grep命令的结果只体现在文书中窥见相配格局的公文名;

      假如寻找的是单个文件,grep命令的结果将显得每二个暗含相配情势的行。

 

下边正是grep命令的宗旨接纳方法。不过不时三个轻松的正则表明式不可能稳固你要物色的从头到尾的经过,如要搜索同期满足情势大器晚成和情势二的数量行,这时候egrep命令就足以派上用处。

egrep命令的语法格式和grep命令雷同。可是egrep命令是用来在贰个或三个公文的内容中应用扩大的正则表明式的元字符寻找特定的方式。扩大的正则表达式的元字符包涵了grep命令中选用的正则表明式元字符的还要,还增添了一些外加的元字符,大约有下边几个:

+:相称一个或八个前导字符

a|b:匹配a或b

(RE):相配括号中的正则表达式RE

 

上面小编将通过有个别大旨的事例来进步大家对grep和egrep命令用法的问询。鉴于grep命令中存有的选项egrep都能够采用(egrep更抓好有力),为便利起见小编将使用egrep命令为大家演示:

例意气风发:展现出文件/etc/passwd含有root的行

图片 1

shell编程之grep命令的使用,grep命令的使用。 

例二:输出/etc/passwd中其余带有bash的具备行,还要输出紧接着那行的前后各两行的原委

图片 2

 

例三:展现出/etc/passwd中有稍稍行含有nologin

图片 3

 

例四:展现出/etc/passwd中那么些行含有root,并将行号一块输出

图片 4

 

例五:

新建顾客abominable、abominate、anomie、atomize,编写正则表明式,将他们十三分出来

 

 

例六:新建顾客Alex213sb、Wpq2222b、yH438PIG、egon666、egon过滤出顾客名组成是字母+数字+字母的行

图片 5

 

例七:彰显出/etc目录下全体包蕴root的文书名

图片 6

 

例八:过滤掉/etc/ssh/sshd_config内有所注释和富有空行

图片 7

 

以上例子只是非常的小的意气风发某个,我们假设勤加练习,一定非常快就能够操纵grep命令的应用啦
^^

 

我们在攻读正则表明式早前,首先要鲜明一点,并把它牢牢记在心底,这正是:
在linux中,通配…

发表评论

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