grep和正则表达式
正则表达式示例表
字 符 意 义 示 例
* 任意长度的字符串。 a* 表示: 空字符串、aaaa、a…
? 长度为0或者1的字符串。 a? 表示: 空字符串和a。
+ 长度为一个或者多个的字符串。 a+表示:a、aa、aaaaaa…
. 任意字符。 a. 表示:a后跟任意字符。
{} 代表上一规则重复数目、
{1,1,s}包含一组匹配花括号,里面有两个数字和一个字符,表示在指定次数范围内找到字符。 a{3}表示:三个a、
a{1,3}表示:一个到三个a、
a{3,} 表示:大于等于三个a、
{3,7,a}表示在3到7次重复范围内匹配字符a。
[] 集合,代表方括号中任意一个字符。 [ab] 表示:a或者b都可以、
[a-z] 表示:从a到z的字符。
() 组,代表一组字符。 (ab){2}表示:abab。
a/b 同时满足。 a/b表示:字符串a后跟字符串b才能满足要求。
a|b 并列,代表符合a或者符合b都可以 a|b表示: 字符串a或者字符串b都满足要求。
^ 如果放在开头表示代表该规则必须在字符串的开头,其他位置代表字符本身。
如果放在[]中的开头表示对该集合取反,其他位置代表字符本身。 ^a表示:a必须在字符串的开头、
[^a]表示:除了a以外的其他字符。
$ 如果放在最后表示该规则必须放在最后,其他位置代表字符本身。 a$表示:a必须在字符串最后。
\:s 正则表达式用 \:s 表示空格。 a\:sb 匹配 a b。
\:a 正则表达式用 \:a 表示字符与数字。 a\:a 匹配 ab、a6 等。
\:c 正则表达式用 \:c 仅表示字符。 a\:c 匹配 ac等,不匹配a1等。
\:p 正则表达式用 \:p 表示可打印字符。
\:D 正则表达式用 \:d 仅表示数字。 a\:c 匹配 a1等,不匹配ac等。
\:x00 正则表达式用 \:x00 表示ASCII字符。
\:r 正则表达式用 \:r 表示回车。
\:N 正则表达式用 \:d 表示换行。
一 正则表达式
基本元字符集及其含义
^ 只只匹配行首
$ 只只匹配行尾
* 只一个单字符后紧跟*,匹配0个或多个此单字符
[ ] 只匹配[ ]内字符。可以是一个单字符,也可以是字符序列。可以使用-
表示[ ]内字符序列范围,如用[ 1 - 5 ]代替[ 1 2 3 4 5 ]
\ 只用来屏蔽一个元字符的特殊含义。因为有时在shell中一些元字符有
特殊含义。\可以使其失去应有意义
. 只匹配任意单字符
pattern\ 只用来匹配前面pattern出现次数。n为次数
pattern\m 只含义同上,但次数最少为n
pattern\ 只含义同上,但pattern出现次数在n与m之间
二 grep 的用法
1 双引号引用
在grep命令中输入字符串参数时,最好将其用双引号括起来
2 grep选项
常用的grep选项有:
-c 只输出匹配行的计数。
-i 不区分大小写(只适用于单字符)。
-h 查询多文件时不显示文件名。
-l 查询多文件时只输出包含匹配字符的文件名。
-n 显示匹配行及行号。
-s 不显示不存在或无匹配文本的错误信息。
-v 显示不包含匹配文本的所有行。
-o Print each match, but only the match, not the entire line.
3 精确匹配
使用grep抽取精确匹配的一种更有效方式是在抽取字符串后加\>。假定现在精确抽取48,则为"48\>"
三 grep和正则表达式
使用正则表达式时最好用单引号括起来,这样可以防止grep中使用的专有模式与一些shell命令的特殊方式相混淆。
1 模式范围
假定要抽取代码为484和483的城市位置,上一章中讲到可以使用[ ]来指定字符串范围,这里用48开始,
以3或4结尾,这样抽出484或483。grep '48[34]' data.f
2 不匹配行首
如果要抽出记录,使其行首不是48,可以在方括号中使用^记号,表明查询在行首开始。
grep '^[^48]' data.f
3 匹配任意字符
如果抽取以L开头,以D结尾的所有代码,可使用下述方法,因为已知代码长度为5个字符:
grep 'L...D' data.f
4 日期查询
一个常用的查询模式是日期查询。先查询所有以5开始以1 9 9 6或1 9 9 8结尾的所有记录。使用模式5..199[6,8].这意味着第一个字符为 5,后跟两个点,接着是199,剩余两个数字是6或8。
grep '5..199[6,8]' data.f
查询包含1998的所有记录的另外一种方法是使用表达式[0-9]\[8],含义是任意数字重复3次,后跟数字8,虽然这个方法不像上一个方 法那么精确,但也有一定作用。
5 使用grep匹配“与”或者“或”模式
grep命令加- E参数,这一扩展允许使用扩展模式匹配。例如,要抽取城市代码为2 1 9或2 1 6,方法如下:
grep -E '219|216' data.f
6 空行
结合使用^和$可查询空行。使用- n参数显示实际行数:
grep '^$' data.f
7 grep 与类名的使用
类等价的正则表达式类等价的正则表达式
[[:upper:]] [A-Z] [[:alnum:]] [0-9a-zA-Z]
[[:lower:]] [a-z] [[:space:]] 空格或t a b键
[[:digit:]] [0-9] [[:alpha:]] [a-zA-Z]
转载于:https://www.cnblogs.com/fjping0606/p/4428885.html
grep和正则表达式相关推荐
- 深入浅出grep与正则表达式
一.什么是正则表达式 很可能我们经常会听到一些有经验的系统管理员告诉我们说:正则表达式非常重要.为什么说正则表达式非常重要呢?因为我们在使用文本编辑的时候或者编写shell脚本的时候经常会使用到查找. ...
- grep与正则表达式
grep与正则表达式 一.grep grep文本过滤工具 作用:文本搜索工具,可以指定内容对指定文本进行匹配搜索:打印匹配的行 由正则表达式字符及文本字符编写的过滤条件,来进行逐行匹配 -- colo ...
- grep及正则表达式
grep可以说是Linux系统当中的一个文本检索工具.在Linux系统当中,其中有两个核心的理念:一切皆文件.配置文件保存为纯文本的格式.既然是纯文本的格式,可以想象,有一个好的文本检索工具是多么必要 ...
- Linux grep命令,正则表达式
grep命令及正则表达式 grep命令 grep , egrep , fgrep grep,sed,awk 文本处理三剑客 grep: Global search REgular expression ...
- shell编程三剑客之grep与正则表达式
shell编程三剑客之grep与正则表达式 一 grep工具 1.1 常用选项 1.2 选项解释 二 正则表达式 2.1 正则表达式的含义 2.2 正则表达式的应用场景 2.3 正则表达式名词解释 2 ...
- linux grep 正则匹配字符串,Linux grep与正则表达式详解
grep 是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来,本文主要给大家分享Linux grep与正则表达式的相关知识,感兴趣的朋友一起看看吧,希望能帮助到大家. grep ...
- Linux grep之正则表达式
文章目录 6.grep之正则表达式 1.自学书上的 2.课件上的 3.总结 6.grep之正则表达式 1.自学书上的 在正则表达式中,空格和其他字符没有什么区别. 正则表达式识别的字符包括:*[]^$ ...
- 正则表达式匹配linux时间,linux grep与正则表达式使用介绍
grep (缩写来自Globally search a Regular Expression and Print)是一种强大的文本搜索工具,它能使用特定模式匹配(包括正则表达式)搜索文本,并默认输出匹 ...
- Linux学习命令汇总三——Linux用户组管理,文件权限管理,文本搜索命令grep及正则表达式...
本章Blog相关Linux知识点 解析:在数据库按搜索码查找相对应的条目,并找与之对应额外的其他数据库的过程:名称解析:UID ,组名解析:GID 数据库:文本文件,sql数据库,ldap数据库,用户 ...
- linux grep 基本正则表达式与扩展正则表达式使用解析
成功的秘诀很简单=开始+坚持 接下来介绍grep和基本的正则表达式: 当大家需要从某个文本中,或者信息中检索数据时就要用上grep了 先介绍下grep的基本语法 grep [options] 'pat ...
最新文章
- Web前端工程师的一些常见误区
- 使用libre office writer 为文档添加可跳转目录
- php验证安全码,PHP 高自定义性安全验证码的简单示例
- 计算机删除等级列在哪里,插入与删除Excel表格的单元格、行和列
- 全国计算机等级考试题库二级C操作题100套(第28套)
- u2020 华为_华为MateBook X Pro 2020款评测:全面屏商务旗舰再升级
- 树状数组相关应用之区间包含问题
- 高质量C /C编程指南---序言
- Node.js CVE-2017-14849复现(详细步骤)
- 【LOJ】#2062. 「HAOI2016」地图
- java总结体会_Java课程总结心得体会
- flash动画转html5 效果,一键把SWF转HTML5 canvas动画的工具-Fanvas
- 【CASS精品教程】CASS9.1查询功能大全(坐标、长度、面积、方位角)
- CF1467C Three Bags(思维)
- c++ primer plus6.11第三题 编写一个菜单驱动程序雏形。
- matlab 去高光,Specular-Highlight-Mitigation-Removal-master
- 京东云linux查看挂载磁盘,使用S3fs在Linux实例上挂载Bucket
- 商用三维虚拟数字人如何制作
- python snmp
- GR技术介绍-ielab