grep程序

  Linux下有文本处理三剑客 -- grep sed awk
  grep:文本 行过滤工具
  sed: 文本 行编辑器(流编辑器)
  awk:报告生成器(做文本输出格式化)

grep

  包含三个命令:grep egrep fgrep ,它们是用来进行 行模式(pattern)匹配的
  egrep = gerp -E //使用扩展的正则表达式进行匹配
  fgrep = fast grep  //只使用文件通配符进行匹配
  *grep默认使用正则表达式进行文本匹配*

grep的用法:

  grep [option] ... PATTERN [filename]

  grep的常见选项 -- option
    -E  支持使用扩展的正则表达式(ERE)(regexp)
    -P  使用perl语言的正则表达式引擎进行搜索(每一种语言的正则表示式引擎都不相同,甚至sed grep awk使用的regexp引擎也不相同)
    -i   忽略大小
    -v  进行反选
    -o  仅仅输出匹配的内容(默认输出的是匹配到的行)
    --color=auto  语法着色
    -n  显示行号
    -w  匹配固定的单词

PATTERN--正则表达式

  作用:通过一些特殊字符,来表示一类字符内容,然后交给前面的命令来执行;如果使用特殊字符本身含义,就需要 \ 进行转义;

字符匹配

  .  任意一个字符  ?
  [ ]  范围内的任意一个字符
  [^ ]  范围外任意一个字符
  字符类:[:digit:] [:alnum:] [:alpha:] [:lower:] [:upper:] [:space:] [:punct:]

次数匹配

  * 匹配前面的字符0次到无数次
  \?匹配前面的字符0次到1次
  \+ 匹配前面的字符1次到n次
  \{m\} 配置前面的字符m次
  a\{7\} aaaaaaa
  \{m,n\} 匹配前面的字符m到n次
  \{0,n\} 匹配前面的字符0次到n次  【0要不要?(不行!)】
  \{m,\} 匹配前面的字符至少m次

位置锚定

  ^ 锚定行首
  $  锚定行尾
  ^[[:space:]]*$  空白行
  \b 锚定词首和锚定词尾
  \>  锚定词尾
  \<  锚定词首
  \<root\>  rooter

分组

  abc*  abcccc  abc要看成一个整体
  **分组特性:默认情况下,Linux系统会为分组指定变量 ,变量的表示形式 \1 \2 \3 ...  (后向引用)

   示例:\(ab+\(xy\)*\)   其中 \1 = ab+\(xy\)* , \2 = xy
            abbbbbxyxyxyabxy

扩展的正则表达式

  【标准正则表达式中的 \ 都可以去掉】
  分组  : ()  后向引用  \1 \2 \3 ...
  或: |

    grep -E "(svm|vms)" /proc/cpuinfo  //查看CPU的虚拟化功能

最新文章

  1. python 发送邮件
  2. jQuery中使用ajax,$.post
  3. Javascript事件模型系列(二)事件的捕获-冒泡机制及事件委托机制
  4. HDU 4251 The Famous ICPC Team Again 主席树
  5. JQ选择器逐一测试
  6. vim 正则替换
  7. u盘安装ubuntu server 14.04 以及No CD-ROM drive was detected 错误
  8. Python标准库10 多进程初步 (multiprocessing包)
  9. React模板
  10. Dire Wolf ---hdu5115(区间dp)
  11. hdu 5400 Arithmetic Sequence
  12. QR code 金庸小说体(二)
  13. SQL Server索引进阶:第二级,深入非聚集索引
  14. Struts2的那些小细节
  15. 深入理解Mybatis插件开发
  16. 机器学习课程-第8周-降维(Dimensionality Reduction)—主成分分析(PCA)
  17. mysql性能优化2
  18. 谈 Python 程序和 C 程序的整合 (转载)
  19. .net core 填坑记之—格式转换问题
  20. BZOJ3573 [Hnoi2014]米特运输 【贪心】

热门文章

  1. appium如何获取到APP的启动activity
  2. 删除resource中的图片后编译报错
  3. 【KAWAKO】deepface-在基于m1芯片的macbook上进行安装
  4. 题解 P5072 【[Ynoi2015] 盼君勿忘】
  5. 利用反射和代理简单模拟mybatis实现简单的CRUD
  6. TikTok 推荐引擎强大的秘密
  7. vue浏览器全屏 非全屏切换 按esc退出全屏
  8. ClickHouse(13)ClickHouse合并树MergeTree家族表引擎之CollapsingMergeTree详细解析
  9. 图扑 Web SCADA 智慧制硅厂,打造新时代制硅工业
  10. java学习日记20230226-java环境搭建及运行机制