linux grep命令使用的详解-junhuang09

简介
grep (全球 search regular 脸色(re) and print out the line,对常客脸色终止片面搜索并蜡纸油印机出版是一种性能。,它可以应用常客脸色搜索说法。,蜡纸油印机婚配线。Unix grep家族包罗grep、egrep和fgrep。egrep和fgrep公正地的命令是从grep独自地有一点儿变化多的。egrep是grep的延伸,倒退更多的RE刻。, fgrep公正地是集中:显著地理睬的 grep或快 grep,他们把主宰些人字母评价单词。,换句话说,常客脸色射中靶子元刻表现,不再特别。Linux应用GNU grep版本。它更难以对付的,你可以经过G、-E、f命令行选择能力应用egrep和fgrep公正地的效能。

这执意grep的小题大做,它在一体或多个提出中搜索刻串模板。。倘若模板包括空格,它必需被援用。,主宰些人刻串作为提出名模板后。搜索胜利被发送到掩藏。,不心情原始提出满意的。

grep可以应用shell本子,因grep归属一体制约值显示搜索制约,倘若模板搜索成,归属0,倘若搜索失律,归属1,倘若搜索提出不存在,归属2。we的主宰格形状可以应用这些归属值终止一点点不自觉举措说法处置。。
效能阐明:在提出中查找合格刻串。

术语的方法:grep [-abcEFGhHilLnqrsvVwxy][-A][-B][-C] [-d][-e][-f][–help][范本形状][提出或含量…]
弥补阐明:
grep把持用于查找包括命名的模板提出,倘若找到适合命名模板ST的提出的满意的,预安装grep把持会把取得范本形状的那一列显示出现。倘若缺勤命名提出名,或确定的提出的命名,grep命令从规范输入手段读取资料。

参  数:
或-说法 不要疏忽二元系资料。
-A或–after-context= 不计显示适合范本形状的那一列不计,并在列较晚地显示满意的。
-b或–byte-offset 在显示适合模板形状的列屯积,表现列的第一体刻的位数。。
-B或–before-context= 不计显示适合范本形状的那一列不计,并在列屯积显示满意的。
或计数 计算适合模板形状的列数。。
或 不计显示适合范本形状的那一列不计,并显示列的满意的前后。
-d或–directories= 当命名含量而过错提出时,必需应用此限制因素。,另外grep把持将及于传达并终止举措。
E或9 将刻串命名为查找提出满意的的模板铅字。。
-E或–extended-regexp 应用模板形状的普通表现作为扩展名。。
f或-提出 命名模板提出,满意的包括一体或多个模板形状。,让你找到提出满意的适合必要条件的模板,该体式是每个列的模板形状。。
-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 在显示适合模板形状的列屯积,标示此列的列号。。
别叫喊左右缄默? 未显示究竟哪个传达。
-r或–recursive 这人限制因素和命名的d的主宰物 递归式等于的限制因素。
-s或–no-messages 不显示误差音讯。
-v或–revert-match 掉换查找。
-V或–version 显示版本传达。
-w或–word-regexp 只显示全字柱。
-x或–line-regexp 只显示适合列的主宰列。
-y 此限制因素的主宰物和命名“-i”限制因素等于。
–help 在线扶助。

2. grep常客脸色元刻集(根本集)

^
锚线开端 如:^ grep'matches grep主宰行开端。
$
锚线完毕 如:grep 'matches钱主宰行完毕与grep。
一体刻一体非换行刻婚配 如:婚配GR,因此选择任性刻。,因此P。
*
婚配零个或多个事先刻 如:grep婚配的一体或多个空格和沿线grep*。 将究竟哪个刻结成肩并肩的。
[]
婚配命名的刻延伸。,比如,[ ] rep'matches grep和grep GG。
[^]
婚配缺席命名延伸内的刻。,如:[ ^ a-fh-z ] rep'match不包括字母从A-R和t-Z,赶上资金筹集者的军衔。
(..)
记号婚配刻,譬如爱,情爱被贴上1符号。

锚单词的正面的,如:
>
锚定单词的结局,比如,'grep > 'matches包括单词结局的grep的行。
x
反复刻x,m次,如:的'0'match包括5行啊。
x
反复刻x,至多M次,如:o'matches至多5行。
x
反复刻x,至多M次,不超过N次,如:o'matches行5 — 10 O。
w
婚配说法和数字刻,那执意,[就],如:GW * p'matches零或多个说法刻或数字后跟G,因此P。
W
w的逆形状,婚配一体或多个非单词刻。,譬如总额时间。
b
字锁,如: bgrepb'only竞赛grep。

3. 就较和 grep e的元扩张集
+
婚配一体或多个先前的刻。如:[A-Z] 性能,婚配一体或多个小写字母字母的刻串。,如心爱,enable,禁用以及休息人。
?
婚配零个或多个事先刻。如:Gr?p'matches GR后跟一体或缺勤刻,因此P的行。
a|b|c
婚配A或B或C。如:| SED grep或sed grep婚配
()
字组分类证章,如:love(able|rs)ov+婚配loveable或lovers,婚配一体或多个OV。
x,x,x
应变量与x等于,x,x

4. POSIX刻类
为了把持一体在变化多的规定的变化多的的刻编码,POSIX(的 Portable Operating System 轻摇)添加一体特别刻类,如:[ alnum:]是一种作曲方法就。把它们放进[秋天]一体常客脸色,比如[ A ] Za-z0-9]或[[:alnum:]]。grep linux下不计fgrep公正地,主宰倒退POSIX刻类。

[:alnum:]
印数字刻
[:alpha:]
印刻
[:digit:]
数字刻
[:graph:]
非空刻(非空格)、把持刻)
[:lower:]
小写字母刻
[:cntrl:]
把持刻
[:print:]
非空刻(包罗空格)
[:punct:]
标点证章
[:space:]
主宰空白刻(新行),空格,Tab)
[:upper:]
大写刻
[:xdigit:]
巫婆数字(0-9,a-f,A-F)

5. grep命令选择能力
-?
还显示婚配上顺流而下的的行。,如:grep -2 pattern 提出名还显示婚配行的顶部和喝彩2行。。
-b,–byte-offset
蜡纸油印机婚配行并外行前面蜡纸油印机块号。。
-c,–count
只蜡纸油印机婚配的整个感到,不显示婚配满意的。
-f File,–file=File
从提出中汁模板。空提出包括0个模板,因而它不婚配究竟哪个东西。。
-h,–no-filename
搜索多个提出时,不显示婚配提出名前缀。。
-i,–ignore-case
疏忽写种差。
-q,–quiet
抵消显示,仅归属违世制约。0个是查找婚配行。。
-l,–files-with-matches
蜡纸油印机婚配模板的提出列表。
-L,–files-without-match
蜡纸油印机不婚配模板的提出列表。
-n,–line-number
在婚配行前面蜡纸油印机行数。
-s,–silent
不显示不存在或无法读取FI的误差传达。。
-v,–revert-match
反检索,只显示不婚配的行。
-w,–word-regexp
倘若援用,无论以任何方式把脸色秋天单词搜索。。
-V,–version
显示软件版本传达。

6. 使习惯于
应用grep器,确实是写常客脸色。,因而缺勤解说grep的主宰效能,举一些侦查,以任何方式编译常客脸色。

$ ls -l | grep a
经过管道过滤ls L的输入,只显示以A正面的的行。

$ grep 测验 d*
显示主宰以d正面的的提出都包括测验行。。

$ grep 测验 aa bb cc
显示AA,bb,CC提出射中靶子行婚配测验。

$ grep [A-Z] aa
显示包括至多有5个陆续小写字母字母的刻串的行。。

$ grep W aa

倘若西部相婚配,因此ES贮藏在内存中。,奖章为1,因此搜索究竟哪个刻,这些刻前面跟着另一体ES。,找届时显示行。倘若你应用egrep或grep -E,缺勤必要用数字来偷懒。,径直地写成W就可以了。

就说法提出grep搜索
倘若想在多个说法提出中找到一体刻串,你可以应用查找命令。grep中搜索说法刻串。
承认您在‘/usr/src/linux/Documentation’含量下搜索带刻串‘magic’的提出:

$ 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

这能够使输入grep难读。在这里有两个receiver 收音机:

清楚的想要搜索子含量:grep -r
或疏忽子含量:grep -d skip
自然,倘若您预期有落落大方的输入,你可以经过 管道 把它读到更少:
$ grep magic /usr/src/linux/Documentation/* | less

如此的,你可以更轻易地读物。。

有一件事要理睬。,您必需规定一种过滤提出的方法(搜索主宰提出) *)。倘若你遗忘了,grep将等候,直到顺序被打断。倘若你遭遇这种使习惯于,按 ,因此再试。

上面是一点点风趣的命令行限制因素:
grep -i pattern files :不区别胶料写的搜索。默许使习惯于下敏感,
grep -l pattern files :只列出相婚配的提出名,
grep -L pattern files :列出不婚配的提出名。,
grep -w pattern files :只婚配总额单词,代表刻串的钟爱的,譬如婚配魔术的,过错魔术的,
grep -C number pattern files :[行]在婚配的左右论文显示行。,
grep pattern1 | pattern2 files :显示婚配 pattern1 或 pattern2 的行,
grep pattern1 files | grep pattern2 :显示既婚配 pattern1 再配 pattern2 的行。
在这里有一点点搜索的特别证章。:

\ 记号:单词的正面的和结局。
比如:
grep man * 将婚配 ‘Batman’、‘manic’、人等,
grep ”\
grep ”\” 只配天哪,而过错蝙蝠侠或狂爱和休息刻串。
”^”:在刻串的正面的,
”$”:在垂线的定期的婚配刻串。,
倘若您不习惯于命令行限制因素,你可以试试图形接口的grep,如 reXgrep 。该软件规定了 AND、OR、NOT 等句法,和标致的纽扣。倘若你只必要更完整地的输入,何妨试试 fungrep 。
————————
协同为grep命令句法
1. 双引号和引号
在grep命令中输入刻串限制因素时,最好用双引号把它包装起来。。比如:”mystring”。做这件事有两个原文。,率先,为了撤销被念错为 shell命令,二是一体可以用来查找多个单词的刻串。,比如:”jet plane”,倘若你不应用双引号,把它包装起来。,如此的的话 航空器将被信以为真是一体提出,查询胜利将归属该提出不存在的误差音讯。。
当大声喊变量,也被期望应用双引号。,比如: grep”$ myvar提出名,倘若不如此的,将
缺勤归属胜利。
大声喊铅字婚配时,引号。[ root@localhost应应用 ]# echo `grep 123 `  正文是反引号。

2. 通俗的的grep选择能力:
-c   只计算婚配行的数量。。
-i   不区别胶料写(仅用于独自地刻)。
-h   在查询多个提出时不显示提出名。。
-l   当你查询多个提出,你只需输入提出名包括婚配。
-n   显示婚配线和行数。
-s   不显示不存在或不存在的说法的误差传达。。
-v   显示不包括婚配说法的主宰行。。

3. 多提出射中靶子特别查询
$ grep “sort”*.doc     ( 整个在出席的含量中 d o 在C提出中查找刻串 o r t”)

$ grep “sort it” *      或查询主宰文档射中靶子排序一词。 it”)
上面的主宰示例都援用独自地提出射中靶子查询
4. 行婚配
$ grep -c “48″
$ 4                      grep归属4号,意义是有4皮箱括刻串4。 8″。)
$ grep “48″           显示包括4 8行的4行说法

5. 显示愿意的婚配铅字的行的行数。:
【root@localhost oid2000]# grep -n 1234
1:1234
3:1234ab

6. 严格婚配
【root@localhost oid2000]# grep “1234\>”
1234

7. 查询空白,以必要条件开端或完毕的行。。
并有应用^和$可查询空白。应用- n限制因素显示现实行数。
【root@localhost oid2000]# grep -n “^$”     归属胜利 2:   显示秒行是空白的。
【root@localhost oid2000]# grep -n “^abc” 从ABC开端查询行
【root@localhost oid2000]# grep -n “abc$”   查询以ABC结局的行

8. 婚配特别刻,具有特别感到的查询刻,比如$ . ‘ ” * [] ^ | \ + ? ,必需有一体特任的刻。
【root@localhost oid2000]# grep  “\.”   在查询中包括.主宰行。
【root@localhost oid2000]# grep  “my\.conf”  查询提出名我。 c o n f的行)

9. 含量查询
【root@localhost oid2000]# ls -l |grep “^d”      倘若要查询含量含量含量
【root@localhost oid2000]# ls -l |grep “^d[d]”    查询含量中不包括含量的主宰提出
【root@localhost]# ls -l |grpe “^d…..x..x” 查询休息用户和用户集团身体部位集中与执行的含量

————————
它可以综合如次:

grep命令是linux下的行过滤器,它的限制因素是各种各样的的。,上面是每个限制因素的应变量的引见。,预期能帮到你。

grep — print lines matching a pattern (本着形状列出版)

◎句法: grep [选择能力]
PATTERN 【提出。

在呼应的部门提出射中靶子说法对比地中,或未命名提出时,规范输入对比地。 在预安装的使习惯于下,grep列出线路,适合作风。与此同时,这两个顺序grep异常,egrep及fgrep。相当于grep egrep -E ,fgrep公正地相当于grep -F 。

◎限制因素
1. -A NUM,–after-context=NUM
不计列出符合线,并列出上面的数字行。
示例:   $ grep -A 1 panda file
从提出中搜索具有大熊猫作风的数字,并显示行的高音的1行。

2. 或-说法
grep高音的搜索的说法提出,以二元系提出作为搜索目的,将显示以下音讯 Binary file 二元系提出的名字 matches 因此完毕。倘若是添加一体限制因素,二元系提出是说法提出搜索,相等于-二元系提出=说法限制因素。
示例:    (从二元系提出mv中搜索熊猫作风)
(误差!!!)

$ grep panda mv
Binary file mv matches
(这暗示这人提出中有婚配。,详见–binary-files=TYPE )

$
(彻底地)!!!)
$ grep -a panda mv

3. -B NUM,–before-context=NUM
与 -A NUM 绝对,不管到什么程度这人限制因素是显示林越过的行的数字行。。
示例:    从提出中搜索具有大熊猫作风的数字,并显示行的前1行。
$ grep -B 1 panda file

4. -C [民], -NUM, 左右文[数字]
列出版外的行,并向上和滑降列出数字行。,默许值是2。。
示例:    (不计包括熊猫作风的行外,还列出提出,并列出其
(更改默许值),径直地交替民
$ grep -C[民] panda file

5. -b, –byte-offset
音节总额前的说法形状列表。 ..
为例 $ grep -b panda file

显示胜利是类似性的。
0:熊猫
66:pandahuang
123:panda03

6. –binary-files=TYPE
限制因素典型提前决定为二元系(二元系)。,普通方法搜索,独自地2个胜利
1。倘若有一体适合的关心:显示二元系 file 二元系提出的名字 matches
2。倘若缺勤关心可以调停:缺勤显示。

倘若典型缺勤婚配,遭遇这人限制因素。,grep会认就此而论二元系卷宗缺勤包括究竟哪个搜索形状,与我 限制因素等于。倘若TPYE的说法, 你理解这人二元系提出为说法提出,有一体 限制因素等于。
Warning: –binary-files=text 倘若输入是末期的,能够会有一点点不必要的的输入。。

7. -c, –count
不显示形状行,只显示适合的行数。
倘若加法运算v,–invert-match,与限制因素显示各异的行数。。

8. -d ACTION, –directories=ACTION
倘若输入提出是提出夹,应用举措处置这人提出夹。
提前决定举措为读(读)。,换句话说,这人提出夹将被招待一体行提出。;倘若举措是略过(略过),该提出夹会被略过的grep:倘若举措是递归式(递归式),grep将读取该提出夹下的主宰提出,这相当于- R 限制因素。

9. -E, –extended-regexp
应用常客脸色解说形状。

10. -e PATTERN, –regexp=PATTERN
使作风特点,通经用于撤销应用启动铅字。

11. -f FILE, –file=FILE
提早将要搜索的形状作曲提出,聚会的聚会的,因此应用提出搜索。空提出表现未搜索的铅字。,因而它与它缺勤究竟哪个相干。。
示例: (新提出搜索形状提出)
$grep -f newfile file

12. -G, –basic-regexp
以时髦为根本裁决表达阐释。(作为作出前提)

13. -H, –with-filename
本着前面的铅字,每个提出名,倘若有每一路,它就会显示出按某路线发送。。
示例: (在提出和测验提出的熊猫样式搜索)
$grep -H panda file ./testfile
提出:熊猫
./test提出:熊猫

14. -h, –no-filename
相似地h限制因素,但按某路线发送在输入时不显示。。

15. –help
大发脾气短扶助音讯。

16. -I
grep将二元系提出不包括究竟哪个搜索方法力,等于——二元系提出=缺勤婚配限制因素。
示例: $ grep -I panda mv

17. -i, –ignore-case
疏忽胶料写,包括要搜索的形状和要搜索的提出。。
示例: $ grep -i panda mv

18. -L, –files-without-match
不显示通常的输入胜利。,相反,提出名不婚配。。

19. -l, –files-with-matches
不显示通常的输入胜利。,只显示提出名。

20. –mmap
倘若能够,应用mmap零碎大声喊读取输入,而过错提前读取零碎大声喊。在非常条款,–mmap 它能产生上进的效力。。 可是,倘若在手柄mmap提出延长,或输入输入 当产生误差,未定界行动(包罗要点) 卸下货物或其它负担),。

21. -n, –line-number
在显示线中,记号线数。
示例: $ grep -n panda file
显示胜利是类似性的。
行数:行的满意的

22. -q, –quiet, –silent
不显示究竟哪个普通输入。请参阅s或-无音讯

23. -R -r, –recursive
递归式地,读取每个提出夹下的主宰提出,这相当于 -d recsuse 限制因素。

24. -s, –no-messages
不要显示不存在或不克不及读取的误差音讯。。
笺注: 相异的GNU grep,引渡的grep不适合拟定草案,鉴于缺少Q限制因素,和他的 限制因素的行动相似地GNU。 grep的 -q 限制因素。
Shell 比赛多半嫁接引渡grep,撤销q和s限制因素,输入仅限于。
POSIX:
清晰度UNIX和unix类零碎必要规定的效能。

25. -V, –version
显示版本号到规范误差中。
当你归属grep的bug,grep版本号必需包罗。

26. -v, –invert-match
显示除搜索形状行越过的主宰满意的。

27. -w, –word-regexp
找寻搜索铅字作为一体词来搜索,列出一体与该词完整婚配的行。。

28. -x, –line-regexp
将搜索形状搜索为聚会的。,列出与行完整一致的行。。

发表评论

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