正则表达式网络三剑客之grep

本文详细介绍了正则表达式的概念与基本元字符,展示了grep命令的使用实例,包括查找特定字符、集合字符、行首行尾匹配等。此外,还讲解了cut、sort、uniq和tr工具在文本处理中的应用,适合IT人员提升文本操作技能。
摘要由CSDN通过智能技术生成

目录

引言

1、正则表达式

1.1、正则表达式的定义

1.2、基础正则表达式元字符

1.3、扩展正则表达式元字符

2、grep

3、元字符操作案例 

3.1.查找特定字符

 3.2、利用中括号“[]”来查找集合字符

3.3、查找行首“^”与行尾字符“$”

3.4、查找任意一个字符“.”与重复字符“*”

3.5、查找连续字符范围“{}”

4、cut、sort、uniq、tr

4.1、cut:列截取工具

4.2、sort:排序工具

4.3、uniq:去重工具

 4.4、tr:修改工具

总结


引言

正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。

1、正则表达式

1.1、正则表达式的定义

正则表达式,又称正规表达式、常规表达式,使用字符串来描述、匹配一系列符合某个规则的字符串正则表达式组成。

1.2、基础正则表达式元字符

基础正则表达式是常用的正则表达式部分,除了普通字符外,常见到以下元字符。

字符含义
\转义字符,!、\n等
^匹配字符串开始的位置,列:^a ^the ^#
$匹配字符串结束的位置,列:word$
.匹配除\n之外的任意的一个字符,列:go.d、g…d
*匹配前面子表达式0次或者无数次,;列:goo*d、go.*d
[list]匹配list列表中的一个字符,列:go[ola]d、[abc]、[a-z]、[a-z0-9]
[^list]匹配任意不在list列表中的一个字符,列:[ ^a-z]、[ ^0-9]、[ ^A-Z0-9]
{n,m}匹配前面的子表达式n到m次,有{n}、{n}、{n,m}三种格式,列:go{2}d、go{2}

1.3、扩展正则表达式元字符

字符含义
+匹配前面子表达式1次以上,列:go+d,将匹配至少一个o
?匹配前面子表达式0次或者1次,列:go?d,将匹配gd或god
()将括号中的字符串作为一个整体,列:(xyz)+,将匹配xyz整体1次以上,如xyzxyz
l以或的方式匹配字条串,列1:good l food ,将匹配good或者food;列2:g(oo l la)d,将匹配good或者glad

定位符

^ 匹配输入字符串开始的位置

$匹配输入字符串结尾的位置

非打印字符

\n匹配一个换行符

\r匹配一个回车符

\t匹配一个制表符

2、grep

grep命令使用正则表达式来搜索文本,并且把匹配的文本打印出来

常用选项含义
-c只打印匹配的文本行的次数,不显示文本内容。
-i匹配时忽略字母大小写
-h当搜索多个文件,不显示匹配文件名前缀。
-l只列出含义匹配的文本行的文件的文件名,不显示其具体匹配的内容。
-n列出所有匹配的文本行,并显示行号
-s不显示关于不存在或无法读取文件的错误信息
-v只显示不匹配的文本行,反向选择,显示与搜索字符串不相符的行。
-w匹配整个单词
-x匹配整个文本行
-r递归搜索,不仅搜索当前目录,还有各级子目录
-E开启扩展(extend)的正则表达式

示例

过滤网卡中的IP地址

3、元字符操作案例 

3.1.查找特定字符

查找特定字符非常简单,如执行以下命令即可从 test.txt 文件中查找出特定字符“the”所在位置。其中“-n”表示显示行号、“-i”表示不区分大小写。命令执行后,符合匹配标准的字符, 字体颜色会变为红色。

 3.2、利用中括号“[]”来查找集合字符

 

3.3、查找行首“^”与行尾字符“$”

 

3.4、查找任意一个字符“.”与重复字符“*”

 

 

3.5、查找连续字符范围“{}”

 

 

 

4、cut、sort、uniq、tr

4.1、cut:列截取工具

使用说明:cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。如果不指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一

 

4.2、sort:排序工具

sort 是一个以行为单位对文件内容进行排序的工具,也可以根据不同的数据类型来排序。例如数据和字符的排序就不一样

常用选项含义
-t指定分隔符,默认使用[Tab]吧 键或空格分隔

-k

指定排序区域,哪个区间排序
-n按照数字进行排序,默认是以文字形式排序
-u等同于 uniq,表示相同的数据仅显示一行,注意:如果行尾有空格去重就不成功
-r反向排序,默认是升序,-r就是降序
-o将排序后的结果转存至指定文件
-f忽略大小写,会将小写的字母都转换为大写字母来进行比较
-b忽略每行前面的空格

 

 

 

4.3、uniq:去重工具

1、主要用于去除连续的重复行

2、注意:是连续的行,所以通常和sort结合使用先排序使之变成连续的行再执行去重操作,否则不连续的重复行他不能去重

 

 

 4.4、tr:修改工具

 它可以用一个字符来替换另一个字符,或者可以完全除去一些字符,也可以用它来除去重复字符

 

 

 

总结

 正则表达式grep

sort

uniq

tr

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值