shell之文本过滤(grep)

分类: linux shell脚本学习2012-09-14 14:17 588人阅读 评论(0) 收藏 举报
shell正则表达式扩展工具存储

grep(全局正则表达式版本)允许对文本文件进行模式查找。如果找到匹配模式, grep打印包含模式的所有行。grep支持基本正则表达式,也支持其扩展集。

g r e p一般格式为:

grep [选项]基本正则表达式[文件]

这里基本正则表达式可为字符串。如果是字符串的时候请加上“”号,否则容易出错。

常用的g r e p选项有:
-c  只输出匹配行的计数。
-i  不区分大小写(只适用于单字符) 。
-h  查询多文件时不显示文件名。
-l  查询多文件时只输出包含匹配字符的文件名。
-n  显示匹配行及行号。
-s  不显示不存在或无匹配文本的错误信息。
-v  显示不包含匹配文本的所有行。

grep和正则表达式
使用正则表达式使模式匹配加入一些规则,因此可以在抽取信息中加入更多选择。使用正则表达式时最好用单引号括起来,这样可以防止 g r e p中使用的专有模式与一些 s he l l 命令的特殊方式相混淆。

要用好grep这个工具,其实就是要写好正则表达式,所以这里不对grep的所有功能进行实例讲解,只列几个例子,讲解一个正则表达式的写法。

$ ls -l | grep '^a' 
通过管道过滤ls -l输出的内容,只显示以a开头的行。

$ grep 'test' d* 
显示所有以d开头的文件中包含test的行。

$ grep 'test' aa bb cc 
显示在aa,bb,cc文件中匹配test的行。

$ grep '[a-z]/{5/}' aa 
显示所有包含每个字符串至少有5个连续小写字符的字符串的行。

$ grep 'w/(es/)t.*/1' aa 
如果west被匹配,则es就被存储到内存中,并标记为1,然后搜索任意个字符(.*),这些字符后面紧跟着另外一个es(/1),找到就显示该行。如果用egrep或grep -E,就不用"/"号进行转义,直接写成'w(es)t.*/1'就可以了。

grep正则表达式元字符集(基本集)

锚定行的开始 如:'^grep'匹配所有以grep开头的行。


锚定行的结束 如:'grep$'匹配所有以grep结尾的行。


匹配一个非换行符的字符 如:'gr.p'匹配gr后接一个任意字符,然后是p。


匹配零个或多个先前字符 如:'*grep'匹配所有一个或多个空格后紧跟grep的行。 .*一起用代表任意字符。

[] 
匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep。

[^] 
匹配一个不在指定范围内的字符,如:'[^A-FH-Z]rep'匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行。

/(../) 
标记匹配字符,如'/(love/)',love被标记为1。

/< 
锚定单词的开始,如:'/
/> 
锚定单词的结束,如'grep/>'匹配包含以grep结尾的单词的行。

x/{m/} 
重复字符x,m次,如:'0/{5/}'匹配包含5个o的行。

x/{m,/} 
重复字符x,至少m次,如:'o/{5,/}'匹配至少有5个o的行。

x/{m,n/} 
重复字符x,至少m次,不多于n次,如:'o/{5,10/}'匹配5--10个o的行。

/w 
匹配文字和数字字符,也就是[A-Za-z0-9],如:'G/w*p'匹配以G后跟零个或多个文字或数字字符,然后是p。

/W 
/w的反置形式,匹配一个或多个非单词字符,如点号句号等。

/b 
单词锁定符,如: '/bgrepb/'只匹配grep。

转载于:https://www.cnblogs.com/L-H-R-X-hehe/p/3816191.html

shell之文本过滤(grep)相关推荐

  1. java ef 引用问题_java调用shell(ps -ef | grep )问题

    shell: ps -ef | grep 'DevCfg_Cli.pl 51964 ZYYC00002' [b]在控制台输入,输出正常[/b] root 3226 3088 0 12:51:04 pt ...

  2. linux sed 正则提取字符串,Shell中使用grep、sed正则提取和替换字符串

    Linux中使用grep正则提取字符串 echo office365 | grep -P '\d+' -o find . -name "*.txt" | xargs grep -P ...

  3. shell之文本过滤(awk)

    shell之文本过滤(awk) 分类: linux shell脚本学习2012-09-19 15:53 1241人阅读 评论(0) 收藏 举报 shell 正则表达式 脚本 任务 语言 如果要格式化报 ...

  4. _linux文本过滤grep基础命令介绍

    在linux中经常需要对文本或输出内容进行过滤,最常用的过滤命令是grep grep [OPTIONS] PATTERN [FILE...] grep按行检索输入的每一行,如果输入行包含模式PATTE ...

  5. 文本过滤--grep 1

    2019独角兽企业重金招聘Python工程师标准>>> grep就是用来模式匹配查找的,我这里根据自己所学简单的总结下.有什么不对或者不详的地方还望看到的同学指正出来. 首先使用gr ...

  6. shell脚本系列-grep用法总结

    相信grep是UNIX和LINUX中使用最广泛的命令之一.grep(全局正则表达式版本)允许对文本文件进行模式查找.如果找到匹配模式,grep打印包含模式的所有行.grep支持基本正则表达式,也支持其 ...

  7. Linux高级专题详解--shell编程大全(shell变量,if语句,case语句,for循环,while循环,函数调用,数组,正则表达式,shell脚本三剑客--grep,sed,awk家族)

    shell编程 初始shell 程序 语言 编程 ---------------------------------- 语言 自然语言:汉语.英语 计算机语言:c语言.c++.(java php py ...

  8. Shell正则表达式(grep)

    Shell正则表达式grep 正则表达式概述 一.正则表达式定义 二.正则表达式组成 三.基础正则表达式--`grep.sed命令支持` (1)基础正则表达式示例 (2)利用中括号" [ ] ...

  9. 学习云计算运维之shell三剑客(grep、sed、awk)一篇就够了!!!

    正则表达式 一:什么是正则表达式 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个"规则字符串", 这个"规则字符串 ...

最新文章

  1. Visual Studio配置VLFeat库(一次配置,永久生效)
  2. Web安全的三个攻防姿势
  3. [Java基础]HashSet集合概述和特点
  4. .net开源框架开源类库(整理)
  5. 华为交换机默认vlan都是通的吗_华为设备二层交换技术——Hybrid接口详解
  6. 文件粉碎机c语言代码,Life——文件粉碎机源码
  7. java操作Excel实现读写
  8. 主要省份城市的DNS服务器地址
  9. cocos2d-x常用工具-沈大海cocos2d-x教程23
  10. @Resource 注解和 @Autowired 注解的对比
  11. 一份完整测试方案模板
  12. 如何快速识别图片中的字体是什么字体
  13. 无线上网认证之Portal认证
  14. python音频 降噪_python降噪_python音频降噪_python图片降噪 - 云+社区 - 腾讯云
  15. OpenCV API使用笔记 —— 4. 如何保存视频文件
  16. 以金融证券、游戏、电商等案例详解SQL强化
  17. Manacher算法的基础应用:小A的回文串
  18. “Outlook 中的搜索结果不正确,因为缺少MapiPH.dll” 的解决方法
  19. Typora入门教程
  20. 数据库实验二之数据查询

热门文章

  1. 前端学习(3224):字符串形式
  2. 前端学习(3190):react简介二
  3. 前端学习(2942):vue的本地注册
  4. [html] const nums1 = [1, 2, 2, 1], nums2 = [2] 交集是什么?
  5. PS教程第十三课:是时候开始战斗了
  6. [css] CSS中的calc()有什么作用?
  7. [css] 在sass中可以执行布尔运算吗?
  8. [vue] 你知道vue中key的原理吗?说说你对它的理解
  9. 工作218:页面样式调整
  10. 前端学习(417):京东制作页面25中间部分的准备工作