linux文本处理杏彩平台出租工具之grep与正则表达式语法

Grep
介绍
Linux 文本处理三剑客之一,文件过滤工具(另外两剑客为sed:文本编辑工具,awk:文本报告生成器) 拥有着,根据用户指定的“模式”对目标文本逐行进行匹配检查;打印匹配到的行的功能。

使用
Grep除了正常的字符使用之外 还可以运用正则表达式字符。

Grep的重要命令选项

--color=auto 关键字高亮显示(centos7默认)

*-v 关键字 显示不包含关关键字的行,取反

*-i 关键字 忽略关键字的大小写

-n 显示的结果每行前增加行号

-c 仅显示找出的结果的行数

*-o 仅显示匹配到的关键字,不显示同行的其他内容

*-w 关键字 匹配整个单词

*-E 等于egrep 使用扩展正则表达式

正则表达式
正则表达式regexp又称规则表达式,是由一类特殊字符及文本编写的,其中有些字符有些字符(元字符)不表示字符字面意义,而表示控制或通配的功能。就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式是一种文本模式,模式描述在搜索文本时要匹配的一个或多个字符串。

正则表达式的使用
具有特殊意义的字符元字符有着 字符匹配,匹配次数、位置锚定、分组四个功能。掌握了这四个功能 在运用正则表达式的时候会事半功倍

   以下四个功能处理的都是元字符。

1.字符匹配:

当我们想在文本中查找某些内容时,首先就需要进行文本搜索,这时就需要对部分字符进行匹配从而找到想要的内容。

  .在元字符里表示匹配任意的一个单个字符

[] 匹配指定范围内的任意单个字符

[^] 匹配指定范围外的任意单个字符

[:alnum:] 字母和数字

[:alpha:] 代表任何英文大小写字符,亦即 A-Z, a-z

  [:blank:] 空白字符(空格和制表符)

[:space:] 水平和垂直的空白字符(比[:blank:]包含的范围广)

[:cntrl:] 不可打印的控制字符(退格、删除、警铃...)

[:digit:] 十进制数字 [:xdigit:]十六进制数字

[:graph:] 可打印的非空白字符

[:print:] 可打印字符

[:punct:] 标点符号

  1. 匹配次数
  • 表示前面的字符匹配任意次,可以0次,可以无限,贪婪模式

.* 表示任意内容任意长度

\? 表示前面的内容匹配0次或1次

+ 表示前的的内容匹配1次以上

{n}匹配前面的字符n次

{m,n}匹配前面的字符至少m次,至多n次

{,n}匹配前面的字符至多n次

{n,}匹配前面的字符至少n次

3.位置锚定 :

使您能够将正则表达式固定到行首或行尾。它们还使您能够创建这样的正则表达式,这些正则表达式出现在一个单词内、在一个单词的开头或者一个单词的结尾。

定位符用来描述字符串或单词的边界,^ 和 $ 分别指字符串的开始与结束,\b 描述单词的前或后边界,\B 表示非单词边界。

^ 行首锚定,用于模式的最左侧

$ 行尾锚定,用于模式的最右侧

^PATTERN$ 用于模式匹配整行

^$ 空行

^[[:space:]]*$ 空白行

\< 或\b 词首锚定,用于单词模式的左侧\>或\b 词尾锚定;用于单词模式的右侧

\<PATTERN\> 匹配整个单词

4.分组

当前方字符通过() 绑定在一起时,此时的字符可以当做一个整体来进行操作。

分组括号中的模式匹配到的内容会被正则表达式引擎记录于内部的变量中,这些变量的命名方式为 : \1, \2, \3, ...,

\1 表示从左侧起第一个左括号以及与之匹配右括号之间的模式所匹配到的字符。

此时就可以运用后项引用来实现某些功能,例如:

‘^(bin).*\1$’其中的\1就表示杏彩平台出租QQ2952777280【话仙源码论坛】hxforum.com【木瓜源码论坛】papayabbs.com 前面的第一个括号包裹起来的bin

或者:|

示例:a|b: a或b

特殊的元字符

符号

描述

*

字符出现的次数0或多次

.

任意的单一字符

^/$

开头或结尾

{n}

表示匹配n次

[]

括号里的任意单一字符

\

转译符

+

字符出现一次或多次

?

出现0次或1次

()

分组表示

\n

后项引用

{m,n}

出现的次数高于m小于n

总结:正则表达式的运用可以在多种计算机语言中使用,他是一种规则的定义,来实现对字符串的操作。

原文地址:http://blog.51cto.com/13891734/2151397

时间: 2024-10-08 23:57:43

linux文本处理杏彩平台出租工具之grep与正则表达式语法的相关文章

Python中 sys.argv[]的杏彩平台出租用法简明解释

因为是看书杏彩平台出租haozbbs.comQ1446595067 自学的python,开始后不久就遇到了这个引入的模块函数,且一直在IDLE上编辑了后运行,试图从结果发现它的用途,然而结果一直都是没结果,也在网上查了许多,但发现这个问题的比较详细的解释只有一个版本,大部分都是转裁和复制的.给的都是简明python教程上那个一长串代码的例子,说看了就明白了,可我看得晕头转向的还是没真正明白,只知道"sys.argv[0]表示代码本身文件路径"这点,其实还是不明其意.后来经过大量努力,多

杏彩平台出租mysql存储过程之遍历多表记录后插入第三方表中

自从学过存储过程后杏彩平台出租(www.1159880099.com )QQ1159880099,就再也没有碰过存储过程,这是毕业后写的第一个存储过程. 因为项目里设备的种类比较多,分别存在不同的数据表中,java中对应不同的java bean对象,想要统一管理有点困难.最近正好要开发一个功能模块,就是需要统一对设备进行处理,想着为了以后都能方便的统一处理各种设备,就从现在开始设计一套方案管理起这些项目吧. 如何统一管理呢? 如果从项目一开始设计的时候就能考虑到项目会发展成今天这样,当初就应该抽

日本励志短片《人生各自精彩杏彩平台出租》

最近小朋友在游泳杏彩平台出租 下载地址 http://hxforum.com/thread-397-1-1.html QQ2952777280[话仙源码论坛]hxforum.com[木瓜源码论坛]papayabbs.com馆学游泳,给他报名的初衷是能够在炎热地环境中继续锻炼一下身体. 可是作为家长的我,在观看了几场游泳训练后,总觉得孩子不够认真和努力--, 接连的"没有追赶精神","没有认真听教练的话","旁边班的小朋友为什么都很熟练了",&qu

Quartz实现JAVA定时杏彩平台出租任务的动态配置

先说点无关杏彩平台出租QQ2952777280[话仙源码论坛]hxforum.com[木瓜源码论坛]papayabbs.com 本文的问题,这段时间特别的不爽,可能有些同学也遇到过.其实也可以说是小事一桩,但感觉也是不容忽视的.我刚毕业时的公司,每个人每次提交代码都有着严格的规范,像table和space的缩进都有严格的要求,可以说你不遵守开发规范就相当于线上bug问题,还是比较严重的.现在发现外面的公司真的是没那么重视这个不重要却又特别重要的问题啊,啊啊啊啊啊啊!!! 什么是动态配置定时任务?

内核中ARP请求的回复控制与杏彩平台出租

ARP收到request请求之后,杏彩平台出租(企 娥:217 1793 408)首先通过路由查询确定目的IP为一个本地地址类型(RTN_LOCAL)后,是否回复arp请求,还取决于两个判断:arp_ignore与arp_filter.可通过sysctl或者proc文件系统查看二者的值,如下所有配置值都为0: $ sudo sysctl -a | grep -w arp_ignorenet.ipv4.conf.all.arp_ignore = 0net.ipv4.conf.default.arp

win10 windows许可证杏彩平台搭建即将过期的解决办法

出现这个错误是因为杏彩平台搭建安装论坛:haozbbs.com Q1446595067 的版本不是正版系统,每隔一段时间需要激活这次激活也费了一些时间,记录如下希望能对大家有所帮助 (1)首先可以查看自己的许可什么什么时候会过期windows+R调出命令运行窗口,输入slmgr.vbs -xpr这里写图片描述(2)用工具进行激活MicroKMS神龙版链接:https://pan.baidu.com/s/1bwrKMK_EfA-AnJKdPtaplA 密码:kv39这里写图片描述点击划线进行激活,

BeanUtils——JavaBean相互杏彩平台带保险理赔仓转换及字典翻译

在升级公司架构过程中杏彩平台带保险理赔仓(www.1159880099.com )QQ1159880099,发现有大量Entity与DTO相互转换的问题,并且其中还伴随DTO中的数据字典翻译,所以特意写个工具类,主要利用spring提供的BeanUtils工具类,用redis翻译字典其中功能包括: 翻译JavaBean中带有@CacheFormat的属性 /** 翻译当前类中需要翻译的字典值 @param source 待翻译的对象*/public static <T> void dataFo

数据结构---在分内分彩平台出租存上理解链表

首先,在学习分内分彩平台出租haozbbs.comQ1446595067 数据结构中,对链表在内存上的理解非常重要,上代码public class LinkNode<M> {public M data;public LinkNode nextNode;br/>@Overridepublic String toString() {return "LinkNode [data=" + data + ", nextNode=" + nextNode +

C++STL库常腾讯分用分彩平台出租数据结构用法整理

vector腾讯分用分彩平台出租haozbbs.comQ1446595067创建对象,vector<int> vec;尾部插入数字,vec.push_back(a):使用下表访问元素使用迭代器访问元素插入元素删除最后一个元素,vec.pop_back() queue定义一个queue的变量 queue<Type> M查看是否为空范例 M.empty()从已有元素后面增加元素 M.push()输出现有元素的个数 M.size()显示第一个元素 M.front()显示最后一个元素 M.