正则表达式是一种符号表示法,用于识别文本模式。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

例子

原文地址:http://www.codeceo.com/article/linux-reg-usage.html

【转】Linux正则表达式使用指南的更多相关文章

  1. linux内核调试指南

    linux内核调试指南 一些前言 作者前言 知识从哪里来 为什么撰写本文档 为什么需要汇编级调试 ***第一部分:基础知识*** 总纲:内核世界的陷阱 源码阅读的陷阱 代码调试的陷阱 原理理解的陷阱 ...

  2. Linux 桌面玩家指南:06. 优雅地使用命令行及 Bash 脚本编程语言中的美学与哲学

    特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...

  3. Linux Kernel - Debug Guide (Linux内核调试指南 )

    http://blog.csdn.net/blizmax6/article/details/6747601 linux内核调试指南 一些前言 作者前言 知识从哪里来 为什么撰写本文档 为什么需要汇编级 ...

  4. 教老婆学Linux运维(二)Linux常用命令指南【上】

    目录 教老婆学Linux(二)Linux常用命令指南[上] 一.概述 二.常用命令 教老婆学Linux(二)Linux常用命令指南[上] 作者:姚毛毛的博客 tips:文章太长,分两篇发出,本篇发前三 ...

  5. 转:C++ Boost/tr1 Regex(正则表达式)快速指南

    C++ Boost/tr1 Regex(正则表达式)快速指南 正则表达式自Boost 1.18推出,目前已经成为C++11(tr1)的标准部分. 本文以Boost 1.39正则表达式为基础,应该广泛适 ...

  6. Linux音频编程指南

    Linux音频编程指南 虽然目前Linux的优势主要体现在网络服务方面,但事实上同样也有着非常丰富的媒体功能,本文就是以多媒体应用中最基本的声音为对象,介绍如何在Linux平台下开发实际的音频应用程序 ...

  7. linux正则表达式之-基础正则表达式(基于grep)

    linux正则表达式: 简单的说,正则表达式就是为处理大量的字符串而定义的一套规则和方法,如:假设@代表123456,!代表abcde.通过定义的这些特殊符号的铺助,系统管理员就可以快速的过滤,替换或 ...

  8. 关于清晰讲解linux正则表达式的博文分享

    http://www.cnblogs.com/chengmo/archive/2010/10/10/1847287.html  linux shell 正则表达式(BREs,EREs,PREs)差异比 ...

  9. Linux正则表达式grep与egrep

    grep -io "http:/=[A-Z0-9]\{16\}" ./wsxf.txt >wsxf_urls.txt Linux正则表达式grep与egrep 正则表达式:它 ...

随机推荐

  1. elasticsearch高级配置之(二)----线程池设置

    elasticsearch 配置 线程池  一个Elasticsearch节点会有多个线程池,但重要的是下面四个:  索引(index):主要是索引数据和删除数据操作(默认是cached类型)  搜索 ...

  2. CenOS下LAMP搭建过程

    CentOS虚拟机中安装LAMP: Linux+Apache+MySQL+PHP 安装前先关闭防火墙和Selinux 把所有安装包解压到/lamp下(根目录下的lamp目录) 安装gcc, gcc-c ...

  3. 转:loadrunner关联及web_reg_save_param方法浅析

    一.什么是关联 关联(correlation):脚本回放过程中,客户端发出请求,通过关联函数所定义的左右边界值(也就是关联规则),在服务器所响应的内容中查找,得到相应的值,已变量的形式替换录制时的静态 ...

  4. edittext判断获取焦点 有焦点显示clear

    mPhoneEt.setOnFocusChangeListener(new OnFocusChangeListener() { @Override public void onFocusChange( ...

  5. 我也谈 AngularJS 怎么使用Directive, Service, Controller

    原文地址:http://sunqianxiang.github.io/angularjs-zen-yao-shi-yong-directiveservicecontroller.html 其转自大漠穷 ...

  6. css叠加原则,就近原则

    <html><head lang="en"> <meta charset="UTF-8"> <title>< ...

  7. document.createElement方法的使用

    我们在使用createElemen方法t创建一个元素节点的时候,似乎在IE下面怎么写都可以,但切换到FF等其它浏览器却总是会报错. 比如我们要创建一个input元素,那么在IE下,我们可以有多种写法: ...

  8. clearsSelectionOnViewWillAppear

    @property (nonatomic) BOOL clearsSelectionOnViewWillAppear NS_AVAILABLE_IOS(3_2); // defaults to YES ...

  9. linux下查看cpu物理个数和逻辑个数 - chw1989的专栏 - 博客频道 - CSDN.NET

    body { font-family: 微软雅黑,"Microsoft YaHei", Georgia,Helvetica,Arial,sans-serif,宋体, PMingLi ...

  10. python之requests模块

    1.安装 pip install requests 2.基本用法 就是以某种HTTP方法向远端服务器发送一个请求而已 import requests r = requests.get('https:/ ...