栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Shell 正则表达式和编辑文本处理器

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Shell 正则表达式和编辑文本处理器

目录

一、正则表达式

1.1 正则表达式的定义

1.2 正则表达式的分类

1.2.1 基础正则表达式的元字符

 1.2.2 扩展正则表达式

二、拓展小工具

2.1 cut 命令

2.2 sort 命令

2.3 uniq 命令

2.4 tr 命令

总结


一、正则表达式

1.1 正则表达式的定义

正则表达式,在代码中通常简写为regex、regexp。正则表达式通常被用来检索或者替换某个模式的文本,在linux中不同的程序可能会去使用到不同的正则表达式,如:grep sed awk

1.2 正则表达式的分类

Linux中常用的有两种正则表达式:

①基础正则表达式:BRE

②扩展正则表达式:ERE

1.2.1 基础正则表达式的元字符
元字符功能
转义字符,把特殊字符转化为普通字符
^

匹配字符串开始的位置        

$匹配字符串结束的位置
.匹配一个任意的字符
*匹配一个或多个任意字符
【】

匹配【】内的字符, re【a|q】

【^】匹配【】里以什么为开头的字符,【^a-z】
{n}匹配前面的字符n次
{n,}

匹配前面的字不少于n次

{n,m}匹配前面文字n到m次

①grep命令使用正则表达式来搜索文本

格式:grep 【选项】 【条件】 查找的文件

常用选项:

-E: 解释PATTERN作为扩展正则表达式,也就相当于使用egrep。 或操作

-i :  搜索时候忽略大小写

-v:  反转匹配,选择没有被匹配到的内容。

-w:匹配整词,精确地单词,单词的两边必须是非字符符号(即不能是字母数字或下划线)

-n : 显示行数

-c:打印匹配文本行次数

例如:

不显示含有root的行(-v)

 显示以root开头的行

显示以bash结尾的行

grep ‘ o{1,}’

 显示行号和不区分大小写

 ‘sh【oi】rt’  显示出sh后带有i或者o的

【^w】oo 显示oo前面不是以w为开头的

查找含有数字的行数及内容

 

查找以字母开头的行号和内容

 ..和*的区别

 1.2.2 扩展正则表达式

扩展正则表达式,需要使用到egrep或者awk的命令。

常用的扩展元字符:

元字符功能
+

匹配前面一次以上;

go+d,匹配至少一个o

匹配前面一次或零次;

go?d/将会匹配到gd或god

|

表示或者的意思

good | read  匹配到good或者read

r(ea| oo)d 将会匹配到 read或者rood

()

在括号内的字符当作一个整体

(wes)就把wes作为一个整体

()+

匹配括号内整体一次或者多次以上

(food)+ 就会匹配出一个food或者多个food

例如:

匹配一个或多个

 过滤掉空行或者以#开头的内容

二、拓展小工具

2.1 cut 命令

cut 截取工具

常用选项:

-b 按字节截取

-c 按字符截取(中文)

-d 指定以什么作为分隔符

-f  截取出以什么分区的第几个区域,通常与-f一起用

 例如:截取以:为分区的第七个分区

截取出以:为分割的第1列和第7列

 

2.2 sort 命令

sort 将一个文件内容进行排序

常用选项

-t  以什么为分隔符

-k 指定分割后的排序区域

-n 按照数字进行排序(默认为文字)

-r 反向排序(倒序)

-o  将排序后的内容指定发送到某个文件里

-f 忽略大小写

-b 忽略每行前的空格

 例:

把passwd的文件按照字母顺序进行排序

以:为分割符,按照数字大小去排序第三区

 

以:为分割符第四区域按数字排序并输入到一个文件中

 

2.3 uniq 命令

uniq 主要用于去除重复行

常用选项

-c 对重复的行数进行计数

-d 仅显示重复行

-u 仅显示出现一次的行

例:

对重复行计数

 

显示重复的行

 

显示出现一次的行

 

查看登录过系统的用户

 

2.4 tr 命令

tr 可以用一个字符去替换另一个字符,常用对于字符进行替换、压缩和删除

常用选项:

-d 删除字符

-s 删除所有的字符只保留一个字符

 例:

把ni替换成wo

把文件所有小写调成大写

 

把n字符删除

 

只保留一个n

 

总结

1. 正则表达式分为:基础正则表达式和扩展正则表达式

2.cut(截取)、uniq(去重)、tr(替换)、sort(排序)的小工具 

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/882509.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号