仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 485|回复: 8
打印 上一主题 下一主题

[CentOS(社区)] Linux教程之Centos下令――grep

[复制链接]
若相依 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-14 21:17:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的小伙伴们!1.grep简介
grep(globalsearchregularexpression(RE)andprintouttheline,周全搜刮正则表达式并把行打印出来)是一种壮大的文本搜刮工具,它能利用正则表达式搜刮文本,并把婚配的行打印出来。Unix的grep家属包含grep、egrep和fgrep。egrep和fgrep的下令只跟grep有很小分歧。egrep是grep的扩大,撑持更多的re元字符,fgrep就是fixedgrep或fastgrep,它们把一切的字母都看做单词,也就是说,正则表达式中的元字符暗示回其本身的字面意义,不再特别。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],如:Gw*p婚配以G后跟零个或多个笔墨或数字字符,然后是p。

W
w的反置情势,婚配一个或多个非单词字符,如点号句号等。


单词锁定符,如:grep只婚配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}

4.POSIX字符类
为了在分歧国度的字符编码中坚持一至,POSIX(ThePortableOperatingSystemInterface)增添了特别的字符类,如[: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)

5.Grep下令选项
-?
同时显现婚配行高低的?行,如:grep-2patternfilename同时显现婚配行的高低2行。

-b,--byte-offset
打印婚配行后面打印该行地点的块号码。

-c,--count
只打印婚配的行数,不显现婚配的内容。

-fFile,--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
不显现关于不存在大概没法读取文件的毛病信息。

-v,--revert-match
反检索,只显现不婚配的行。

-w,--word-regexp
假如被<和>援用,就把表达式做为一个单词搜刮。

-V,--version
显现软件版本信息。

6.实例
要用好grep这个工具,实在就是要写好正则表达式,以是这里不合错误grep的一切功效举行实例解说,只列几个例子,解说一个正则表达式的写法。

$ls-l|grep^a
经由过程管道过滤ls-l输入的内容,只显现以a开首的行。

$greptestd*
显现一切以d开首的文件中包括test的行。

$greptestaabbcc
显现在aa,bb,cc文件中婚配test的行。

$grep[a-z]{5}aa
显现一切包括每一个字符串最少有5个一连小写字符的字符串的行。

$grepw(es)t.*1aa
假如west被婚配,则es就被存储到内存中,并标志为1,然后搜刮恣意个字符(.*),这些字符前面紧随着别的一个es(1),找到就显现该行。假如用egrep或grep-E,就不必""号举行本义,间接写成w(es)t.*1就能够了。

欢迎大家来到仓酷云论坛!
飘飘悠悠 该用户已被删除
沙发
发表于 2015-1-17 10:15:53 | 只看该作者
随着Linux应用的扩展,出现了不少Linux社区。有一些非常优秀的社区往往是Linux高手的舞台,如果在探讨高级技巧的论坛张贴非常初级的问题经常会没有结果。
飘灵儿 该用户已被删除
板凳
发表于 2015-1-22 08:40:41 | 只看该作者
有疑问前,知识学习前,先用搜索。
第二个灵魂 该用户已被删除
地板
发表于 2015-1-31 05:55:23 | 只看该作者
其次,Linux简单易学,因为我们初学者只是学的基础部分,Linux的结构体系非常清晰,再加上老师循序渐进的教学以及耐心的讲解,使我们理解起来很快,短期内就基本掌握了操作和运行模式。
愤怒的大鸟 该用户已被删除
5#
发表于 2015-2-6 18:06:58 | 只看该作者
熟读写基础知识,学得会不如学得牢。
小女巫 该用户已被删除
6#
发表于 2015-2-18 03:07:15 | 只看该作者
放手去搞。尽量不要提问,运用搜索找答案,或者看wiki,从原理上理解操作系统的本质,而不是满足于使用几个技巧。尽量看英文资料。
山那边是海 该用户已被删除
7#
发表于 2015-3-6 02:20:57 | 只看该作者
任何人都可以根据自己的喜好来定制适合自己的操作系统,Linux?是抢占式多任务多用户操作系统.
深爱那片海 该用户已被删除
8#
发表于 2015-3-12 20:38:02 | 只看该作者
说实话小时候没想过搞IT,也计算机了解也只是一些皮毛,至于什么UNIX,Linux,听过没见过,就更别说用过了。?
再现理想 该用户已被删除
9#
发表于 2015-3-20 03:39:41 | 只看该作者
Linux是参照Unix思想设计的,理解掌握Linux必须按照Unix思维来进行。思想性的转变比暂时性的技术提高更有用,因为他能帮助你加快学习速度。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 09:13

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表