Linux正则表达式grep
正则表达式是一种符号表示法,用于识别文本模式。Linux处理正则表达式的主要程序是grep。grep搜索与正则表达式匹配的行,并将结果输送至标准输出。
1. grep匹配模式
grep按下述方式接受选项和参数(其中,regex表示正则表达式)
1
|
grep [options] regex [files] |
其中options主要为下表:
选项 | 含义 | 功能描述 |
-i | ignore case | 忽略大小写 |
-v | invert match | 不匹配匹配的 |
-l | file-with-match | 输出匹配的文件名 |
-L | file-without-match | 输出不匹配的文件名 |
-c | count | 输出匹配的数目(行数) |
-n | number | 输出匹配行的同时在前面加上文件名及在文件名中的行数 |
-h | no-filename | 抑制文件名的输出 |
举例说明
假设有三个文件del1、del2、del3三个文件的内容如下
例子
2. 特殊字符
符号 | 含义 | 举例 |
^ | 开始标记 | "^abc"满足的例子abc、abcd |
^ | 非(在[]内) | "[^abc]"满足的例子:ddd、mpd |
$ | 结束标记 | ”abc$”满足的例子abc、mmabc |
. | 任意字符 | "a.c"满足的例子abc、fapcc |
\< | 匹配单词开始 | "\<abc"满足的例子abc、abcd |
\> | 匹配单词结束 | "abc\>"满足的例子abc、pmrabc |
| | 或 | "AAA|BBB"满足的例子AAA、BBBpp |
3. 范围
符号 | 含义 | 举例 |
? | 匹配前一个字符0或1次 | "abc?"满足的例子ab、mabcd |
* | 匹配前一个字符≥0次 | "abc*"满足的例子abbb、abcdk |
+ | 匹配前一个字符≥1次 | "abc+"满足的例子abcd、abcccdd |
{} | {m}、{m,n}、{m,}、{,n}分别为匹配前一个字符m次、m到n次、≥m次、≤n次 | "abc\{3,5\}"满足的例子abcccc、abcccccc |
[] | []内如果不是范围,选其一;是范围的话,范围内选其一 | "m[abc]p"满足的例子acpd;m[1-9]p满足的例子m8pp |
() | 将候选的所有元素放在()内,用|隔开 | "a(1|2|3)bc"满足的例子a1bc、mba3bcd |
注意:{}在郑则表达式中需要转移,而{}()不需要。
注意理解{}范围的例子:
4. 标准字符类
字符类 | 释义 |
[:alnum:] | 字母和数字,与[A-Za-z0-9]等价 |
[:word:] | [:alnum:]加上下划线_ |
[:alpa:] | 字母,与[A-Za-z]等价 |
[:digit:] | 数字,与[0-9]等价 |
[:xdigit:] | 十六进制字符,与[0-9A-Fa-f等价] |
[:blank:] | 空格和制表符 |
[:graph:] | 可见字符,靠扩33~126 |
[:lower:] | 小写字母 |
[:upper:] | 大写字母 |
[:print:] | 可打印字符 |
[:space:] | 空白字符,等价于[\t\r\n\v\f] |
[:punct:] | 标点符号 |
[:cntrl:] | ASCII控制码,包括字符0~31以及127 |
例子
可视化正则表达式
工具:Regexper
Linux正则表达式grep的更多相关文章
- Linux正则表达式grep与egrep
grep -io "http:/=[A-Z0-9]\{16\}" ./wsxf.txt >wsxf_urls.txt Linux正则表达式grep与egrep 正则表达式:它 ...
- NO22 Linux正则表达式--grep命令常用参数
Linux正则表达式: 一.基础正则第一波字符说明: 示例: 二.基础正则第二波字符说明: 三.基础正则第二波字符说明: 示例: grep:一般常用参数 示例:+和* ?和.: |: () ...
- Linux正则表达式,grep总结,sed用法
原文: 1.sed 流编辑器,实现对文字的增删改替换查(过滤.取行),能同时处理多个文件多行的内容,可以不对原文件改动,把整个文件 输入到屏幕,可以把只匹配到模式的内容输入到屏幕上.还可以对原文件 ...
- linux正则表达式之-基础正则表达式(基于grep)
linux正则表达式: 简单的说,正则表达式就是为处理大量的字符串而定义的一套规则和方法,如:假设@代表123456,!代表abcde.通过定义的这些特殊符号的铺助,系统管理员就可以快速的过滤,替换或 ...
- Linux之grep及正则表达式
grep简介 grep 是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来.通常grep有三种版本grep.egrep(等同于grep -E)和fgrep.egrep为扩展的g ...
- [Linux]正则表达式和grep使用【转载】
[Linux]正则表达式和grep使用 2018年12月05日 23:45:54 祥知道 阅读数 78 标签: 正则表达式grepLinuxegrep 更多 个人分类: Linux 所属专栏: Li ...
- Linux正则表达式与grep
bash是什么 bash是一个命令处理器,运行在文本窗口中,并能执行用户直接输入的命令 bash还能从文件中读取linxu命令,称之为脚本 bash支持通配符.管道.命令替换.条件判断等逻辑控制语句 ...
- Linux的正则表达式grep,egrep
一.概念 正则表达式是对字符串操作的一种逻辑公式,用事先定义好的一组特殊字符,组成一个"规则字符集合",根据用户指定的文本模式对目标文件进行逐行搜索匹配,显示能被模式匹配到的结果. ...
- Linux中grep命令,用或的关系查询多个字符串,正则表达式基础说明
请尊重版权:原文:https://blog.csdn.net/lkforce/article/details/52862193 使用 grep 'word1|word2' 文件名 这样的命令是不对的 ...
随机推荐
- 《Java4Android》视频学习笔记——抽象类和抽象函数
抽象函数的语法特征 1.类是抽象的,对象是具体的.面向对象里面有个非常重要的特征:先抽象,后具体. 2.只有函数的定义,而没有函数体的函数叫做抽象函数. abstract void fun(); ( ...
- Python多线程学习
一.Python中的线程使用: Python中使用线程有两种方式:函数或者用类来包装线程对象. 1. 函数式:调用thread模块中的start_new_thread()函数来产生新线程.如下例: ...
- linux基础知识总结
使用linux将近一年了,一直都没有时间来总结一下,借着最近在整理知识框架的机会总结一下linux的应用知识. 1.linux有两个目录很特殊,一个是~,另一个是/.两个目录的含义不一样,/是系统 ...
- SQL join中on与where区别
本文导读: 数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户.例如在使用left jion时,on条件是在生成临时表时使用的条件,它不管on中的条件是否 ...
- 「Unity」与iOS、Android平台的整合:2、导出的Android-Eclipse工程
谢谢关注~由于博客园的写字有些蛋疼,已经搬迁到简书了 这是本篇文章的最新连接
- Redis学习笔记2-使用 Redis 作为 LRU 缓存
当 Redis 作为缓存使用时,当你添加新的数据时,有时候很方便使 Redis 自动回收老的数据.LRU 实际上是被唯一支持的数据移除方法.Redis 的 maxmemory 指令,用于限制内存使用到 ...
- 今日推荐:10款在 Web 开发中很有用的占位图片服务
设计网站时,将要使用的图像在一开始通常还不存在,这个时候布局是最重要的.然而,图像的尺寸通常是预先设置,实用一些占位图像可以帮助我们更好地预览和分析布局. 如今,有免费的占位图片自动生成工具可以使用, ...
- go语言 安装版 Windows7安装截图
这个比较简单的 一路next. 查看:解压版安装go. //http://www.cnblogs.com/osfipin/
- JavaScript学习笔记6 之经典神坑题整理
本篇内容是关于容易出错题的整理,这些题也有利于对javascript的语法逻辑的理解,分析的内容仅供参考: <script> */ var x=0 , y=0 , c=1; functio ...
- JavaScript学习笔记2之Tab切换
1.Tab切换简写版1 页面布局如下: <div id="tab"> <h1 id="title"> <span class=&q ...