仓酷云

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

[shell编程] 带来一篇CentOS Shell经常使用技能 grep

[复制链接]
再现理想 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-14 20:18:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的小伙伴们!grep家属:

1.grep加入形态:
0:暗示乐成;
1:暗示在所供应的文件没法找到婚配的pattern;
2:暗示参数中供应的文件不存在。
见以下示例:
/>greproot/etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
/>echo$?
0

/>greproot1/etc/passwd#用户root1其实不存在
/>echo$?
1

/>greproot/etc/passwd1#这里的/etc/passwd1文件其实不存在
grep:/etc/passwd1:Nosuchfileordirectory
/>echo$?
2

2.grep中使用正则表达式的实例:
必要申明的是上面所触及的正则表达式在上一篇中已给出了具体的申明,因而在看上面例子的时分,能够与前一篇的正则申明局部分离着看。
/>cattestfile
northwestNWCharlesMain3.0.98334
westernWESharonGray5.3.97523
southwestSWLewisDalsass2.7.8218
southernSOSuanChin5.1.95415
southeastSEPatriciaHemenway4.0.7417
easternEATBSavage4.4.84520
northeastNEAMMainJr.5.1.94313
northNOMargotWeber4.5.8959
centralCTAnnStephens5.7.94513


/>grepNWtestfile#打印出testfile中一切包括NW的行。
northwestNWCharlesMain3.0.98334

/>grep^ntestfile#打印出以n开首的行。
northwestNWCharlesMain3.0.98334
northeastNEAMMainJr.5.1.94313
northNOMargotWeber4.5.8959

/>grep4$testfile#打印出以4开头的行。
northwestNWCharlesMain3.0.98334

/>grep5..testfile#打印出第一个字符是5,前面随着一个.字符,再前面是恣意字符的行。
westernWESharonGray5.3.97523
southernSOSuanChin5.1.95415
northeastNEAMMainJr.5.1.94313
centralCTAnnStephens5.7.94513

/>grep.5testfile#打印出一切包括.5的行。
northNOMargotWeber4.5.8959

/>grep^[we]testfile#打印出一切以w或e开首的行。
westernWESharonGray5.3.97523
easternEATBSavage4.4.84520

/>grep[^0-9]testfile#打印出一切不是以0-9开首的行。
northwestNWCharlesMain3.0.98334
westernWESharonGray5.3.97523
southwestSWLewisDalsass2.7.8218
southernSOSuanChin5.1.95415
southeastSEPatriciaHemenway4.0.7417
easternEATBSavage4.4.84520
northeastNEAMMainJr.5.1.94313
northNOMargotWeber4.5.8959
centralCTAnnStephens5.7.94513

/>grep[A-Z][A-Z][A-Z]testfile#打印出一切包括前两个字符是年夜写字符,前面紧跟一个空格及一个年夜写字母的行。
easternEATBSavage4.4.84520
northeastNEAMMainJr.5.1.94313
注:在实行以上下令时,假如不克不及失掉预期的了局,即grep疏忽了巨细写,招致这一成绩的缘故原由极可能是以后情况的当地化的设置成绩。关于以上下令,假如我将以后言语设置为en_US的时分,它会打印出一切的行,当我将其修正为中文情况时,就可以失掉我如今的输入了。
/>exportLANG=zh_CN#设置以后的言语情况为中文。
/>exportLANG=en_US#设置以后的言语情况为美国。
/>exportLANG=en_Br#设置以后的言语情况为英国。

/>grep[a-z]{9}testfile#打印一切包括每一个字符串最少有9个一连小写字符的字符串的行。
northwestNWCharlesMain3.0.98334
southwestSWLewisDalsass2.7.8218
southeastSEPatriciaHemenway4.0.7417
northeastNEAMMainJr.5.1.94313

#第一个字符是3,紧随着一个句点,然后是恣意一个数字,然后是恣意个恣意字符,然后又是一个3,然后是制表符,然后又是一个3,必要申明的是,上面正则中的1暗示(3)。
/>grep(3).[0-9].*1*1testfile
northwestNWCharlesMain3.0.98334

/>grep<northtestfile#打印一切以north开首的单词的行。
northwestNWCharlesMain3.0.98334
northeastNEAMMainJr.5.1.94313
northNOMargotWeber4.5.8959

/>grep<north>testfile#打印一切包括单词north的行。
northNOMargotWeber4.5.8959

/>grep^nw*testfile#第一个字符是n,前面是恣意字母大概数字。
northwestNWCharlesMain3.0.98334
northeastNEAMMainJr.5.1.94313
northNOMargotWeber4.5.8959

3.扩大grep(grep-E大概egrep):
利用扩大grep的次要优点是增添了分外的正则表达式元字符集。上面我们仍是持续利用实例来演示扩大grep。
/>egrepNW|EAtestfile#打印一切包括NW或EA的行。假如不是利用egrep,而是grep,将不会有了局查出。
northwestNWCharlesMain3.0.98334
easternEATBSavage4.4.84520

/>grepNW|EAtestfile#关于尺度grep,假如在扩大元字符后面加,grep会主动启用扩大选项-E。
northwestNWCharlesMain3.0.98334
easternEATBSavage4.4.84520

/>egrep3+testfile
/>grep-E3+testfile
/>grep3+testfile#这3条下令将会打印出不异的了局,即一切包括一个或多个3的行。
northwestNWCharlesMain3.0.98334
westernWESharonGray5.3.97523
northeastNEAMMainJr.5.1.94313
centralCTAnnStephens5.7.94513

/>egrep2.?[0-9]testfile
/>grep-E2.?[0-9]testfile
/>grep2.?[0-9]testfile#起首含有2字符,厥后紧随着0个或1个点,前面再是0和9之间的数字。
westernWESharonGray5.3.97523
southwestSWLewisDalsass2.7.8218
easternEATBSavage4.4.84520

/>egrep(no)+testfile
/>grep-E(no)+testfile
/>grep(no)+testfile#3个下令前往不异了局,即打印一个大概多个一连的no的行。
northwestNWCharlesMain3.0.98334
northeastNEAMMainJr.5.1.94313
northNOMargotWeber4.5.8959

/>grep-Ew+W+[ABC]testfile#起首是一个大概多个字母,紧随着一个大概多个非字母数字,最初一个是ABC中的一个。
northwestNWCharlesMain3.0.98334
southernSOSuanChin5.1.95415
northeastNEAMMainJr.5.1.94313
centralCTAnnStephens5.7.94513

/>egrep[Ss](h|u)testfile
/>grep-E[Ss](h|u)testfile
/>grep[Ss](h|u)testfile#3个下令前往不异了局,即以S或s开首,紧随着h大概u的行。
westernWESharonGray5.3.97523
southernSOSuanChin5.1.95415

/>egrepw(es)t.*1testfile#west开首,个中es为1的值,前面紧随着恣意数目的恣意字符,最初另有一个es呈现在该行。
northwestNWCharlesMain3.0.98334

4.grep选项:
这里先列出grep经常使用的下令行选项:
选项申明-c只显现有几行婚配,而细显现婚配的行。-h不显现文件名。-i在字符串对照的时分疏忽巨细写。-l只显现包括婚配模板的行的文件名清单。-L只显现不包括婚配模板的行的文件名清单。-n在每行后面打印该行在文件中的行数。-v反向检索,只显现不婚配的行。-w只显现完全单词的婚配。-x只显现完全行的婚配。-r/-R假如文件参数是目次,该选项将递回搜刮该目次下的一切子目次和文件。/>grep-n^southtestfile#-n选项在每个婚配行的后面打印行号。
3:southwestSWLewisDalsass2.7.8218
4:southernSOSuanChin5.1.95415
5:southeastSEPatriciaHemenway4.0.7417

/>grep-ipattestfile#-i选项封闭了巨细写敏感。
southeastSEPatriciaHemenway4.0.7417

/>grep-vSuanChintestfile#打印一切不包括SuanChin的行。
northwestNWCharlesMain3.0.98334
westernWESharonGray5.3.97523
southwestSWLewisDalsass2.7.8218
southeastSEPatriciaHemenway4.0.7417
easternEATBSavage4.4.84520
northeastNEAMMainJr.5.1.94313
northNOMargotWeber4.5.8959
centralCTAnnStephens5.7.94513

/>grep-lsstestfile#-l使得grep只打印婚配的文件名,而不打印婚配的行。
testfile

/>grep-cwesttestfile#-c使得grep只打印有几婚配模板的行。
3

/>grep-wnorthtestfile#-w只打印全部单词婚配的行。
northNOMargotWeber4.5.8959

/>grep-C2Patriciatestfile#打印婚配行及其高低各两行。
southwestSWLewisDalsass2.7.8218
southernSOSuanChin5.1.95415
southeastSEPatriciaHemenway4.0.7417
easternEATBSavage4.4.84520
northeastNEAMMainJr.5.1.94313

/>grep-B2Patriciatestfile#打印婚配行及其前两行。
southwestSWLewisDalsass2.7.8218
southernSOSuanChin5.1.95415
southeastSEPatriciaHemenway4.0.7417

/>grep-A2Patriciatestfile#打印婚配行及厥后两行。
southeastSEPatriciaHemenway4.0.7417
easternEATBSavage4.4.84520
northeastNEAMMainJr.5.1.94313


如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的小伙伴们!
不帅 该用户已被删除
沙发
发表于 2015-1-15 23:04:12 | 只看该作者

带来一篇CentOS Shell经常使用技能 grep

眼看这个学期的Linux课程已经告一段落了,我觉得有必要写一遍心得体会来总结一下这学期对着门课程的学习。
蒙在股里 该用户已被删除
板凳
发表于 2015-1-22 22:31:19 | 只看该作者
我学习Linux的心得体会 ,希望对大家的学习有所帮助,由于水平有限,本文难免有所欠缺,望请指正。
简单生活 该用户已被删除
地板
发表于 2015-2-6 22:09:38 | 只看该作者
我们这一代90后,从小接触的是windows98,家里条件好的自己有电脑装的是2000,后来又有了XP,上大学时又有了win7。
深爱那片海 该用户已被删除
5#
发表于 2015-2-19 04:37:27 | 只看该作者
学习Linux,应该怎样学,主要学些什么,一位Linux热心学习者,一段学习Linux的风云经验,历时十二个小时的思考总结,近十位网络Linux学习者权威肯定,为您学习Linux指明方向。
冷月葬花魂 该用户已被删除
6#
发表于 2015-3-6 13:23:00 | 只看该作者
虽然大家都比较喜欢漂亮的mm,但是在学 linux 的过程中,还是要多和“男人”接触一下:P 遇到问题的时候,出来看说和上网查之外,就是要多用 linux 下的 man 命令找找帮助。
海妖 该用户已被删除
7#
发表于 2015-3-13 03:08:35 | 只看该作者
Linux高手更具有鼓励新手的文化精神。如何在Linux社区获得帮助,需要说明的是你要有周全的思考,准备好你的问题,不要草率的发问。
透明 该用户已被删除
8#
发表于 2015-3-13 03:08:36 | 只看该作者
上课传授的不仅仅是知识,更重要的是一些道理,包括一些做人的道理,讲课时也抓住重点,循序渐进,让同学理解很快;更可贵的是不以你过去的成绩看问题.
小妖女 该用户已被删除
9#
发表于 2015-3-20 11:46:33 | 只看该作者
以前觉得Linux就跟dos一样,全是用命令窗口,相对于窗口界面来说多麻烦呀。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-5-12 04:21

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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