设为首页 收藏本站
查看: 409|回复: 0

[经验分享] Grep命令及正则表达式

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-9-1 09:01:01 | 显示全部楼层 |阅读模式
grep:
grep英文全名: Global search REgular expression and Print out the line.
作用:文本搜索工具,根据用户指定的"模式(pattern)"逐行去搜索目标文本,打印匹配到的行;
模式:由正则表达式的元字符及文本字符所编写的过滤条件;
元字符:字符不表示其字面意义,而用于表示通配或控制功能;
Grep命令分为分两类:
基本正则表达式:BRE
扩展正则表达式:ERE
命令格式
grep [OPTIONS] PATTERN [FILE...]:
选项:
--color=auto:对匹配到的串做高亮显示;
-v:显示模式匹配不到行;
-i: 忽略字符大小写;
-o: 仅显示能够被模式匹配到的串本行;
-q: 静默模式;
-E:使用扩展的正则表达式;

基本正则表达式的元字符:
字符匹配:
.: 匹配任意单个字符;
[]:匹配指定范围内的任意单个字符;
[^]:匹配指定范围内的任意单个字符;

字符集合:
[:lower:]:小写字母
[:upper:]:大写字母
[:alnum:]:字母数字字符。在 ASCII 中,等价于:[A-Z,a-z,0-9]
[:digit:]:数字0-9
[:space:]:空白字符,包括空格,tab,回车,换行,vertical tab, 和 form feed.在 ASCII 中, 等价于:[ \t\r\n\v\f]
[:punct:]:标点符号字符
[:alpha:]:字母字符。在 ASCII 中,等价于:[A-Za-z]
示例:显示passwd中r+字母+字母+t 的行
wKioL1XkjMOT2wdLAABYa6tqQKU549.jpg
次数匹配元字符:用于要指定其次数的字符的后面;
*: 前面字符出现任意次;
示例:新建grep.txt内容为,
abxy
xay
xxxxxxxy
显示任意个"x"+"y"的行。 wKiom1XkiqTDWoMzAAAqaZuRAQs031.jpg
\?:0或1次;
wKiom1XkiqSjwkA-AAAp5dhWshM052.jpg
\+:1或多次;
wKioL1XkjMTzYj_mAAAljMtRkog703.jpg
\{m\}:精确限制为m次;
wKiom1XkiqTw-U2eAABXAOyDrcs372.jpg
\{m,n\}: 至少m次,至多n次,[m,n]
\{0,n\}:至多n次;
\{m,\}:至少m次;
wKioL1XkjMTQE3ZyAACU4Dczsw4592.jpg
.*: 匹配任意长度的任意字符;

位置锚定:
^: 行首锚定;用于模式的最左侧;
wKiom1XkiqWRFf-cAABX3x9tEnk340.jpg
$: 行尾锚定;用于模式的最右侧;
\<, \b: 词首锚定;用于表示单词的模式的左侧;

\>, \b:词尾锚定;用于表示单词的模式的右侧;
wKioL1XkjNqQgf4CAACFu-Qe190180.jpg
\<,\>同时使用,r开头,t结尾
wKiom1XkiruxIH2tAAB3ptojU_Y486.jpg
^$: 空白行;

分组:\(\)

分组的小括号中的模式匹配到的内容,会在执行过程中被正则表达式引擎记录下来,并保存内置的变量中;这些变量分别是\1, \2, ...
\1: 从左侧起,第一个左括号,以及与之配对的右括号中间的模式所匹配到的内容;
\2:
...
后向引用:使用变量引用前面的分组括号中的模式所匹配到的字符;
wKioL1XkjNrz3rBbAAAuMlcZU7o345.jpg
练习:
1、显示/etc/passwd文件中以bash结尾的行;
wKioL1XkjNqxrezKAAB6slA8iBs383.jpg
2、显示/etc/passwd文件中的两位数或三位数;
wKiom1XkiruzCuRRAAJGLrKBgx4787.jpg
3、显示'netstat -tan'命令结果中以'LISTEN'后跟0个、1个或多个空白字符结尾的行;
wKioL1XkjNuR7ybtAADUuQ3I0Es404.jpg
4、添加用户bash,testbash, basher以及nologin用户(nologin用户的shell为/sbin/nologin);而后找出/etc/passwd文件中用户名同shell名的行;
wKiom1XkirvBTOGIAACde58pecw589.jpg


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-108143-1-1.html 上篇帖子: VI编辑器使用总结 下篇帖子: RHEL系列网络配置 表达式
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

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