首页 > 系统 > 关键词  > linux最新资讯  > 正文

关于Linux Grep命令使用的详细介绍

2008-05-08 11:51 · 稿源:互联网

1. grep简介

grep (global search regular expression(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结尾的单词的行。

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

单词锁定符,如: '\bgrepb\'只匹配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(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)

5. Grep命令选项

-?

同时显示匹配行上下的?行,如:grep -2 pattern filename同时显示匹配行的上下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

不显示关于不存在或者无法读取文件的错误信息。

-v,--revert-match

反检索,只显示不匹配的行。

-w,--word-regexp

如果被\<和\>引用,就把表达式做为一个单词搜索。

-V,--version

显示软件版本信息。

6. 实例

要用好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'就可以了。

举报

  • 相关推荐
  • 腾讯云TencentOS提交Swap Table补丁系列 Linux内核内存交换性能提升20%~30%

    腾讯云操作系统团队提交了名为Swap Table的补丁系列,针对Linux内核交换子系统进行优化。该系列在4K页面和mTHP folios场景下,使系统性能提升20%-30%。Swap Table通过智能调度机制优化数据定位,支持大页尺寸减少操作次数,并实现动态空间扩展。27项独立改进解决了历史遗留问题,经实测性能显著提升。目前补丁系列正处于审核阶段,有望纳入Linux内核主线。这是腾讯云团队继内存控制组、页面热管理等创新后,在操作系统核心技术领域的又一突破,将强化TencentOS Server的高性能优势。

  • 政策东风劲吹,StarlinkX借势启航深耕亚太蓝海

    文章概述了亚太地区在数字经济浪潮下拥抱Web3.0技术变革的趋势。随着各国出台支持政策,AI可穿戴设备制造商StarlinkX抓住机遇加速布局,其产品线凭借生物识别、健康监测和物联网体验等优势,精准契合Web3.0时代对数据隐私保护的需求。公司通过建立区域总部和研发中心,深度融入当地产业链,实现业绩快速增长。文章指出,亚太地区作为全球最具活力的数字经济增长极,正通过完善区块链激励机制、培育去中心化金融生态等措施,构建优质的数字经济发展生态圈。StarlinkX的成功印证了紧跟时代步伐的企业方能行稳致远。

  • ​沃链Wolink:服务于商家和创作者的全球营销平台

    沃链Wolink打造一站式海外营销平台,连接全球品牌与优质创作者,提供从任务发布、创作者匹配、内容制作到多平台发布、支付结算的全流程服务。平台整合200+创作者代理资源,支持135种货币支付,帮助品牌高效拓展海外社交媒体影响力。通过精准达人种草和素人场景化渗透,实现低成本本地化营销。创作者可自由接单变现,小账号也能获得稳定收入。平台提供数据分析工具�

  • 2026年见!OPPO Find N6 Flip即将回归:首发骁龙8 Elite2小折叠

    这款手机将是继2023年发布的Find N3 Flip之后,OPPO再次推出的第三款小折叠手机。 据爆料者透露,OPPO Find N6 Flip将采用全新的设计,可能会使用大量钛金属来构建机身,使其更加轻薄耐用。 此外,OPPO Find N6 Flip预计将搭载高通骁龙8 Elite 2处理器,这将是全球首款采用该芯片的折叠手机。

  • AI日报:混元推四款小尺寸开源模型;昆仑万维发布新推理大模型MindLink;谷歌Gemini 2.5 Deep Think发布

    【AI日报】汇总了最新AI领域动态:1)腾讯开源混元系列小尺寸模型,适用于消费级显卡;2)昆仑万维发布推理大模型MindLink,提升回答透明度;3)B站推出AI原声翻译功能,保留UP主音色;4)谷歌Gemini 2.5在数学奥赛夺金,展现强大推理能力;5)OpenAI展示GPT-5网络信息整合特性;6)苹果组建AI团队挑战ChatGPT;7)高德地图推出全球首个AI原生地图应用;8)Adobe推出AI图像合成工具Harmonize;9)NVIDIA发布革命性视频渲染技术;10)谷歌推出Android Studio免费AI编程助手;11)开源结构化信息提取工具LangExtract;12)Figma开发者模式升级提升设计转代码效率。

  • Neuralink脑机突破新里程碑,微美全息(WIMI.US)多线发力抢滩百亿市场

    马斯克旗下Neuralink宣布成功完成首例同日双台脑机接口手术,标志着手术效率显著提升。该公司计划2028年实现全脑接口,电极数量将从2026年的3000个增至超2.5万个,并与AI深度融合。脑机接口技术已进入高速增长期,主要应用于医疗康复领域,全球市场规模预计达千亿美元。微美全息等科技企业正加速布局,推动技术从实验室走向商业化。尽管仍处商业化初期,但不同技术路线的脑机接口已逐步进入临床,预计未来五年将在医疗领域实现规模化应用。

  • OPPO Find X9 Ultra关键参数曝光:1.5K极窄直屏+骁龙8 Elite 2芯片

    OPPO Find X9 Ultra目前测试1.5K LIPO极窄直屏,搭载高通骁龙8 Elite 2旗舰平台。 对比上代,OPPO Find X9 Ultra进一步缩窄屏幕边框,该机采用全新的LIPO屏幕封装工艺,中文名为低注射压力包覆成型”。

  • 荣耀Magic V Flip2本月登场:电池最大的小折叠

    博主数码闲聊站爆料,荣耀Magic V Flip2将在8月份发布,代号Celine。 据悉,荣耀Magic V Flip2内置5500mAh电池,支持80W闪充,提供月影白、钛空灰、晨曦紫和织梦蓝四种配色,是行业内电池最大的小折叠屏。 核心配置上,荣耀Magic V Flip2将搭载骁龙8系次旗舰芯片,预计是第四代骁龙8s,该芯片采用台积电4nm工艺打造。

  • OPPO Find X9 Ultra曝光:首款骁龙8 Elite 2双潜望旗舰

    博主数码闲聊站爆料,OPPO Find X9 Ultra仍然是迭代旗舰中唯一一款拥有双潜望长焦的机型。 据悉,OPPO Find X9 Ultra配备2亿像素主摄、2亿像素潜望长焦、5000万潜望长焦和超广角,组成全新的哈苏四摄系统,该机不仅拥有双潜望,还是业界罕见的双2亿像素方案。 相比传统的单潜望镜方案,双潜望最明显优势是覆盖的焦段更多,不同焦段可以营造出不同的氛围感,实现更高的创作自

  • 真我GT8 Pro参数出炉:骁龙8 Elite 2+2K直屏 冲击高端市场

    真我GT8 Pro采用2K直屏,搭载高通骁龙8 Elite 2旗舰平台,配备2亿像素大底潜望长焦,马达和扬声器也会加强,还有3D超声波指纹以及金属中框,冲击高端旗舰市场。 其中骁龙8 Elite 2是高通即将推出的新一代旗舰平台,它采用全新一代Oryon CPU,基于台积电第三代3nm制程N3P制造,GPU独立缓存为16MB,并集成Adreno 840 GPU。 此外,针对现在最火爆的AI应用,骁龙8 Elite 2处理器将带来100TOPS�

热文

  • 3 天
  • 7天