- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Shell正则表达式之grep、sed、awk实操笔记
最近一直在研究shell脚本这块,刚好闲下来整了下自己手头上比较好的资料中的一些范例,以下是我整理的鸟哥私房菜里面正则表达式里面比较基础的一些语法详解,适合新手查阅。
首先先复制一段范例:
复制代码代码如下:
#viregular_express.txt
-------------------------------
OpenSourceisagoodmechanismtodevelopprograms.
appleismyfavoritefood.
Footballgameisnotusefeetonly.
thisdressdoesntfitme.
However,thisdressisabout$3183dollars.
GNUisfreeairnotfreebeer.
Herhairisverybeauty.
Icantfinishthetest.
Oh!Thesouptastegood.
motorcycleischeapthancar.
Thiswindowisclear.
thesymbol*isrepresentedasstart.
Oh!Mygod!
Thegdsoftwareisalibraryfordraftingprograms.
Y.1.
TheworldHappyisthesamewithglad.
Ilikedog.
googleisthebesttoolsforsearchkeyword.
goooooogleyes!
go!go!Letsgo.
#IamVBird
--------------------------------
设置语系为C
复制代码代码如下:
#exportLANG=C
grep
1.搜寻特定字符串the
注:n为显示行号
复制代码代码如下:
#grep-ntheregular_express.txt
2.反向搜寻特定字符串the
复制代码代码如下:
#grep-vntheregular_express.txt
3.取得任意大小写the的这个字符串
复制代码代码如下:
#grep-intheregular_express.txt
4.利用括号[]来搜寻集合字符
搜索test或taste这两个单词时,发现他们有共同的t?st,所以可以这么搜寻
复制代码代码如下:
#grep-nt[ae]stregular_express.txt
这样其实就是在找t[a]st和t[e]st这两个分开的字符
如果搜索有oo的字符时,则可以使用:
复制代码代码如下:
#grep-nooregular_express.txt
如果搜索oo时不想搜到oo前面有g的话,我们可以利用反向选择[^]来达成:
复制代码代码如下:
#grep-n[^g]ooregular_express.txt
如果搜索oo前面不想有小写字符,则:
复制代码代码如下:
#grep-n[^a-z]ooregular_express.txt
注:大写英文/小写英文/数字可以使用[a-z]/[A-Z]/[0-9]等方式来书写,也可以写在一起
[a-zA-Z0-9]表示要求字符串是数字以及英文
如果我们要取得有数字的那行,则:
复制代码代码如下:
#grep-n[0-9]regular_express.txt
注:但考虑到语系对编码顺序的影响,因此除了连续编码使用减号[-]外,也可以用[:lower:]代替a-z以及[:digit:]代替0-9使用
复制代码代码如下:
#grep-n[^[:lower:]]ooregular_express.txt
#grep-n[[:digit:]]regular_express.txt
5.显示行首为the的字符串
复制代码代码如下:
#grep-n^theregular_express.txt
显示行首是小写字符
复制代码代码如下:
#grep-n^[a-z]regular_express.txt
6.显示行尾为点.的那一行
复制代码代码如下:
#grep-n\.$regular_express.txt
7.显示5-9行数据
复制代码代码如下:
#cat-Anregular_express.txt|head-n10|tail-n6
8.显示空白行
复制代码代码如下:
#grep-n^$regular_express.txt
9.找出g??d字符串,起头g结束d的四个字符串
复制代码代码如下:
#grep-ng..dregular_express.txt
10.o*代表空字符(就是有没有字符都可以)或者一个到N个o字符,所以grep-no*regular_express.txt就会把所有行全部打印出来,
11.oo*代表o+空字符或者一个到N
文档评论(0)