grep与正则表达式
一、grep

grep文本过滤工具
作用:文本搜索工具,可以指定内容对指定文本进行匹配搜索;打印匹配的行
由正则表达式字符及文本字符编写的过滤条件,来进行逐行匹配
-- color=auto 对匹配到的文本着色显示
-v 显示不被pattern (正则表达式)匹配到的行
-i 忽略字符大小写
-n 显示匹配的行号
-c 统计匹配的行数
-o 仅显示匹配到的字符串
-q 静默模式,不输出任何信息
-A NUM 同时输出后NUM行
-B 同上 同时输出前NUM行
-C 同上 同时输出前后各NUM行
-e 实现多个选项间的或的关系(有正则表达式,这个基本废了)
grep –e ‘cat ’ -e ‘dog’ fileName 文件中的有cat行,和dog的行 都可以输出
-w 匹配整个单词
-E 使用ERE 扩展正则表达式
-F 相当于 fgrep,不支持正则表达式

二、正则表达式

REGEXP:由一类特殊字符及文本字符所编写的模式,其中有些字符(元字符)不表示字符字面意义,而表示控制或通配的功能
程序支持: :grep,sed,awk,vim, less,nginx,varnish等
基本正则表达式 BRE
扩展正则表达式 ERE(grep –E | egrep)
正则表达式主要就是用特定的字符按他的规定组成一串 公式一样的东西,通过他的算法去找到对应的内容

1 . 字符匹配

. 匹配任意单个字符
[ ] 匹配指定范围内的任意单个字符
[^] 匹配指定范围外的任意单个字符
[:alnum:] 全部字母和数字
[:alpha:] 全部字母 == A-Z,a-z
[:lower:] 全部小写字母
[:upper:] 全部大写字母
[:blank:] 空白字符(空格和制表符)
[:space:] 水平和垂直的空白字符 范围更广
[:cntrl:] 不可打印的控制字符 (退格 删除 警铃 )
[:digit:] 十进制数字([:xdigit:] 十六进制数字)
[:graph:] 可打印的非空白字符
[:print:] 可打印字符
[:punct:] 标点符号

2 .匹配次数:指定前面一个的字符出现的次数

* 匹配前面的字符任意次,包括0次 (有多少匹配多少)
.* 任意长度的任意字符
\? 匹配前面的字符 最多1次
+ 匹配前面的字符 最少1次
{n} 匹配前面的字符 n次
{m,n} 匹配前面字符至少m次,至多n次
{,n} 匹配前面的字符 最多 n 次
{n,} 匹配前面的字符最少 n次

3 .位置锚定:定位出现的位置

^ 行首锚定,用于最左侧
$ 行尾锚定
^PATTERN$ 匹配整行
\< 锚定词首 ==\b 用于单词最左侧
\>锚定词尾==\b 用于单词最右侧
\<PATTERN\> 匹配整个单词
() 将一个或多个字符绑定在一起 ,成为一个组,当做一个整体进行处理。
已经匹配到的内容 在后面可以用 \1 \2 \3 这样的变量逐一按匹配到的内容输出
示例: (string1+(string2))
\1 :string1+(string2)

\2 :string2
以上所述是:后向引用,引用前面的分组括号里的正则已经匹配到的字符,不是引用正则表达式本身
| 或者 示例:a|b: a 或b C|cat: C 或cat (C|c)at:Cat 或cat

操作题目:

1 .1 grep -i "^s.*" /proc/meminfo

1 .2 grep "^(s|S).*" /proc/meminfo

1 .3 grep "^[sS].*" /proc/meminfo

2 . grep -v "/bin/bash$" /etc/passwd

3 . grep -w "^rpc" /etc/passwd | cut -d: -f7

4 . cut -d: -f1,3 /etc/passwd | grep -w "[0-9]{1,3}$"

5 . grep "^[[:space:]]+.*" /etc/grub2.cfg

6 netstat -tan | grep “LISTEN[[:space:]]*$”

7 . cut -d: -f1,3 /etc/passwd | grep -o "^.*:[0-9]{1,3}$" |sort -nr -t: -k2

8 . grep "^(.):./\1$" /etc/passwd

9 . df |grep "^/dev/sd" | grep -o " [0-9]% " |grep -o "[0-9]"|sort –nr

3 . egrep 扩展正则表达式

egrep = grep –E
扩展正则表达式中,除了 \<\b \>\b ,其他的 基本正则表达式中的符号 \ 被省略

操作题目:

  1. cut -d: -f1,3,7 /etc/passwd |egrep "^(root|arno|gentoo)"
  2. egrep -o "^[[:alpha:]_[:space:]][[:space:]]()" /etc/rc.d/init.d/functions
  3. echo "/etc/rc.d/init.d/functions/" |egrep -o "[[:alnum:]]*/?$"
  4. echo "/etc/rc.d/init.d/functions/" |egrep -o "^/./[[:alnum:]]"|grep -o "^/./"
  5. last | egrep "root" |egrep -o "([0-9]{1,3}.){3}[0-9]{1,3}" |sort -nr |uniq –c
  6. egrep -w "([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])"
  7. ifconfig | egrep -w "([0-9]{1,3}.){3}[0-9]{1,3}"
  8. echo "welcome to magedu linux" | egrep -o "[[:lower:]]" | sort |uniq -c |sort –nr

o

egrep "[1-9][0-9]{4,9}" fileName QQ
egrep -w "^[1-9]{2}[0-9]{4}(18|19)[0-9]{2}(0[1-9]|1[0-2])([0-2][0-9]|30|31)[0-9]{3}([0-9]|x|X)" fileName ×××
egrep -w "^1[34578][0-9]{9}" fileName 手机号
egrep -w "^[[:alnum:]_]@..com" fileName 邮箱

转载于:https://blog.51cto.com/13120511/2052192

grep与正则表达式相关推荐

  1. 深入浅出grep与正则表达式

    一.什么是正则表达式 很可能我们经常会听到一些有经验的系统管理员告诉我们说:正则表达式非常重要.为什么说正则表达式非常重要呢?因为我们在使用文本编辑的时候或者编写shell脚本的时候经常会使用到查找. ...

  2. grep及正则表达式

    grep可以说是Linux系统当中的一个文本检索工具.在Linux系统当中,其中有两个核心的理念:一切皆文件.配置文件保存为纯文本的格式.既然是纯文本的格式,可以想象,有一个好的文本检索工具是多么必要 ...

  3. Linux     grep命令,正则表达式

    grep命令及正则表达式 grep命令 grep , egrep , fgrep grep,sed,awk 文本处理三剑客 grep: Global search REgular expression ...

  4. shell编程三剑客之grep与正则表达式

    shell编程三剑客之grep与正则表达式 一 grep工具 1.1 常用选项 1.2 选项解释 二 正则表达式 2.1 正则表达式的含义 2.2 正则表达式的应用场景 2.3 正则表达式名词解释 2 ...

  5. linux grep 正则匹配字符串,Linux grep与正则表达式详解

    grep 是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来,本文主要给大家分享Linux grep与正则表达式的相关知识,感兴趣的朋友一起看看吧,希望能帮助到大家. grep ...

  6. Linux grep之正则表达式

    文章目录 6.grep之正则表达式 1.自学书上的 2.课件上的 3.总结 6.grep之正则表达式 1.自学书上的 在正则表达式中,空格和其他字符没有什么区别. 正则表达式识别的字符包括:*[]^$ ...

  7. 正则表达式匹配linux时间,linux grep与正则表达式使用介绍

    grep (缩写来自Globally search a Regular Expression and Print)是一种强大的文本搜索工具,它能使用特定模式匹配(包括正则表达式)搜索文本,并默认输出匹 ...

  8. Linux学习命令汇总三——Linux用户组管理,文件权限管理,文本搜索命令grep及正则表达式...

    本章Blog相关Linux知识点 解析:在数据库按搜索码查找相对应的条目,并找与之对应额外的其他数据库的过程:名称解析:UID ,组名解析:GID 数据库:文本文件,sql数据库,ldap数据库,用户 ...

  9. linux grep 基本正则表达式与扩展正则表达式使用解析

    成功的秘诀很简单=开始+坚持 接下来介绍grep和基本的正则表达式: 当大家需要从某个文本中,或者信息中检索数据时就要用上grep了 先介绍下grep的基本语法 grep [options] 'pat ...

最新文章

  1. mysql 6.3 入门_Mysql 入门小练习
  2. Oracle-AWR性能报告解读
  3. 2020-11-30(为什么字符串可以赋值给字符指针变量)
  4. java jdk 观察者模式_java观察者模式实现和java观察者模式演化
  5. 曝光原理_泰国精戈咖啡效果反馈 作用原理曝光
  6. 三、bootstrap4 组件(警告和提示框、徽章和面包屑、按钮按钮组、卡片、列表组、导航和选项卡、分页和进度条、巨幕和旋转图标、轮播图、折叠菜单、下拉菜单、导航条、滚动监听、轻量弹框、模态框、表单)
  7. 学习opencv 英文版_B站上适合程序员的学习资源【赶紧收藏!】
  8. android 实现自定义卫星菜单
  9. java-常用开源库-apache commons
  10. android 漩涡动画,使用P5.js构造漩涡动画特效
  11. 数据可视化必备的高逼格图表特效,学会只需要五分钟
  12. php中读取文件内容的几种方法。(file_get_contents:将文件内容读入一个字符串)...
  13. Runtime底层原理探究(二) --- 消息发送机制(慢速查找)
  14. python 自动执行 apdl_在高效的mann中从Python运行ANSYS Mechanical APDL
  15. Ubuntu 10.10 下安装spoonwep-wpa工具
  16. SpringBoot + screw 一键生成数据库文档,告别CV大法,解放生产力
  17. QOS中 PQ,CQ.RR,WFQ,CBWFQ,LLQ区分(下)
  18. 空中交通通信控制设备的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  19. 高中计算机在线使用方法,高中-信息技术-手动搜题-在线组卷
  20. U盘装系统启动时按F12没有反应的原因之一

热门文章

  1. 当法律纽带变成“机器红线”,能让自动驾驶汽车更安全吗?
  2. 石正丽/周鹏团队发表冠状病毒新研究,进一步证明新冠非实验室泄漏
  3. 重磅!苹果祭出大招:史上最强 Mac 发布,iPad OS 惊艳问世
  4. 人工智能:AI 芯片快速起航
  5. 西人马聂泳忠:打造机器神经系统,成为中国的特斯拉
  6. 让计算机拥有一双眼睛,人工智能科学家已经努力了半个世纪
  7. 软件开发打败了 80 %的程序员
  8. 成为 Gartner 广域网基础设施报告领导者第二位,Fortinet 做对了什么?
  9. 技术人的不惑之路...... | 每日趣闻
  10. Flask框架从入门到精通之转换器(四)