目录

正则表达式定义

正则表达式组成

普通字符

元字符

基础正则表达式元字符

常见元字符(续)

拓展正则表达式元字符

理论小结

LINUX中常用的有两种正则表达式引擎

GREP

示例:

过滤出有‘the’的句子

过滤出有‘in’的句子

显示以sh开头,t结尾,中间或是i或是r的单词所在的行

显示单词中间有两个o的单词所在的行

显示单词开头大写中间有两个o的单词所在的行

显示含有数字所在的行

显示开头是数字的行

显示开头是‘the’的行

显示以小写字母开头的行

以数字和符号开头的行

显示以‘.’结尾的行

显示空行

显示以w开头d结尾,中间有任意两个字符的单词的行

显示有o的行

显示以w开头d结尾,中间有至少两个o的行

显示以w开头d结尾,中间有至少一个o的行

查找两个o以上的字符串所在的行

查找wo开头,两个到五个o的字符串

查找wo开头,三个o到五个o的字符串

查找w开头,d结尾,且含有两个o的字符串

cut、 sort、 uniq、tr

cut:列截取工具

使用说明:

选项

示例

查找/etc/passwd并以冒号作为分隔符并打印第七列

第二种方法查找/etc/passwd并以冒号作为分隔符并打印第三列

查找/etc/passwd并以冒号作为分隔符并打印第三列和第七列

截取字节

sort

语法:

常用选项

案例

以首字母排序

从第4行开始,以冒号作为分隔符,按照数字进行排序

按数字逆序进行排列

将结果输出到passwd.bak文件

去掉文件中重复的内容

uniq

用法:

语法

常用选项

案例

显示重复行的次数(不连续的不计入统计)

先排序再统计重复行数

显示重复的行

显示只出现过一次的行

去掉重复的行

去掉重复的行(第二种方法)

以空格作为分隔符,打印第一列

多功能组合​

tr (替换)

语法:

用法:

常用选项

案例(预览模式)

用大写代替小写

将个别小写字母替换成小鞋字母

将小写字母‘a’替换为空格

以上均为预览模式

多个字母替换

删除单个字母‘a’

删除多个字母‘apple’

删除换行

删除重复的字母

总结


正则表达式定义

(1)正则表达式,又称正规表达式、常规表达式

(2)使用字符串来描述、匹配一系列符合某个规则的字符串

正则表达式组成

普通字符

大小写字母、数字、标点符号及一些其他符号

元字符

在正则表达式中具有特殊意义的专用字符

基础正则表达式元字符

基础正则表达式是常用的正则表达式部分

除了普通字符外,常见到以下元字符

\:转义字符,\!、\n等

^:匹配字符串开始的位置

例:^a、^the、^#

$:匹配字符串结束的位置

例:word$

.:匹配除\n之外的任意一个字符

例:go.d、g..d

常见元字符(续)

*:匹配前面子表达式0次或者多次

例:goo*d 、go.*d

[list]:匹配list列表中的一个字符

例:go[old]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,3\}d、go\{2,\}d、

拓展正则表达式元字符

扩展正则表达式是对基础正则表达式的扩充深化

扩展元字符

+:匹配前面子表达式1次以上

例:go+d,将匹配至少一个o

?:匹配前面子表达式0次或者1次

例:go?d,将匹配gd或god

():将括号中的字符串作为一个整体

例:(xyz)+,将匹配xyz整体1次以上,如xyzxyz

|:以或的方式匹配字条串

例1:good|food,将匹配good或者food

例2:g(oo|la)d,将匹配good或者glad

理论小结

正则表达式,又称规则表达式。(英语:Regular Expression),在代码中常简写为 regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。正则表达式不只有一种,而且LINUX中不同的程序可能会使用不同的正则表达式,如:

工具: grep sed awk egrep

正则表达式---通常用于判断语句中,用来检查某一字符串是否满足某一格式

正则表达式是由普通字符与元字符组成

普通字符包括大小写字母、数字、标点符号及一些其他符号

元字符是指在正则表达式中具有特殊意义的专用字符,可以用来规定其前导字符(即位于元字符前面的字符)在目标对象中的出现模式

LINUX中常用的有两种正则表达式引擎

基础正则表达式:BRE

扩展正则表达式:ERE

GREP

grep [选项].....查找条件目标文件

-E:开启扩展(Extend)的正则表达式

-c:计算找到'搜寻字符串·的次数

-i:忽略大小写的不同,所以大小写视为相同

-o:只显示被模式匹配到的字符串

-v:反向查找,输出与查找条件不相符的行

--color=auto :可以将找到的关键词部分加上颜色的显示喔!

-n:顺便输出行号

grep -c root /etc/passwd           //统计root字符总行数;或cat /etc/passwd l grep root
grep  -i "the"web.sh          //不区分大小写查找the所有的行
grep -v root /etc/passwd           //将/etc/passwd,将没有出现root的行取出来
cat web.sh lgrep -v '^$' >test.txt          //将非空行写入到test.txt文件
ifconfig ens33 | grep -o "[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+" head -1       //过滤出IP

示例:

备份文件

查看网卡

过滤出有‘the’的句子

过滤出有‘in’的句子

显示以sh开头,t结尾,中间或是i或是r的单词所在的行

先创建一个文件,并输入一下内容(无意义,只是单纯为了方便筛选进行对比)

he was short and fat.
He was wearing a blue polo shirt with black pants.
The home of Football on BBC Sport online.
the tongue is boneless but it breaks bones.12!
google is the best tools for search keyword.
The year ahead will test our political establishment to the limit.
PI=3.141592653589793238462643383249901429
a wood cross!
Actions speak louder than words#woood #
#woooooood
# AxyzxyzxyzxyzC
I bet this place is really spooky late at night!
Misfortunes never come alone/single.

显示单词中间有两个o的单词所在的行

显示单词开头大写中间有两个o的单词所在的行

显示含有数字所在的行

显示开头是数字的行

显示开头是‘the’的行

显示以小写字母开头的行

以数字和符号开头的行

显示以‘.’结尾的行

显示空行

显示以w开头d结尾,中间有任意两个字符的单词的行

显示有o的行

显示以w开头d结尾,中间有至少两个o的行

显示以w开头d结尾,中间有至少一个o的行

查找两个o以上的字符串所在的行

查找wo开头,两个到五个o的字符串

查找wo开头,三个o到五个o的字符串

查找w开头,d结尾,且含有两个o的字符串

cut、 sort、 uniq、tr

cut:列截取工具

使用说明:

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

选项

-b:按字节截取
-c:按字符截取,工常用于中文
-d:指定以什么为分隔符截取,默认为制表符15-f:通常和-d一起

示例

查找/etc/passwd并以冒号作为分隔符并打印第七列

第二种方法查找/etc/passwd并以冒号作为分隔符并打印第三列

查找/etc/passwd并以冒号作为分隔符并打印第三列和第七列

截取字节

sort

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

语法:

sort [选项] 参数

常用选项

-t:指定分隔符,默认使用[ Tab]吧键或空格分隔

-k:指定排序区域,哪个区间排序

-n:按照数字进行排序,默认是以文字形式排序

-u:等同于uniq,表示相同的数据仅显示一行,注意:如果行尾有空格去重就不成功

-r:反向排序,默认是升序,-r就是|降序

-o:将排序后的结果转存至指定文件

sort passwd.txt              //不加任何选项默认按第一列升序,字母的话就是从a到z由上

sort -n -t: -k3 passwd.txt            //以冒号为分隔符,以数字大小对第三列排序(升序)

sort -nr -t: -k3 passwd.txt         //以冒号为分隔符,以数字大小对第三列排序(降序)

sort -nr -t: -k3 passwd.txt -o passwd.bak      //将输结果不在屏幕上输出而是输出到passwd.bak文件

sort -u passwd.txt          //去掉文件中重复的行(重复的行可以是不连续的)

zhangsan

zhangsan

zhangsan

gggggg

lisi

案例

准备工作:备份文件

以首字母排序

从第4行开始,以冒号作为分隔符,按照数字进行排序

同理

按数字逆序进行排列

将结果输出到passwd.bak文件

去掉文件中重复的内容

uniq

用法:

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

语法

uniq [选项] 参数

常用选项

-c:对重复的行进行计数;-d:仅显示重复行;
-u:仅显示出现一次的行

案例

创建文件夹,并输入以下内容

显示重复行的次数(不连续的不计入统计)

先排序再统计重复行数

显示重复的行

显示只出现过一次的行

去掉重复的行

去掉重复的行(第二种方法)

以空格作为分隔符,打印第一列

 多功能组合

tr (替换)

语法:

tr [选项]....SET1 [SET2]

用法:

它可以用一个字符来替换另一个字符,或者可以完全除去一些字符,也可以用它来除去重复字符从标准输入中替换、缩减和/或删除字符,并将结果写到标准输出。

常用选项

-d:删除字符
-s:删除所有重复出现的字符,只保留第一个

案例(预览模式)

用大写代替小写

将个别小写字母替换成小鞋字母

将小写字母‘a’替换为空格

以上均为预览模式

多个字母替换

删除单个字母‘a’

删除多个字母‘apple’

删除换行

删除重复的字母

总结

1.基础正则表达式元字符的用法

2.扩展正则表达式元字符的用法

3.grep命令的使用方法

4.文本处理器的常用方法(cut、sort、uniq、tr)

Shell编程之正则表达式与文本处理器(一)相关推荐

  1. 独一无二 Shell 编程之正则表达式 与文本处理器 详细解释

    技能展示: 基础正则表达式 扩展正则表达式 sed 工具使用方法 awk 工具使用方法 4.1 正则表达式 之前学习了 Shell 脚本的基础用法,已经可以利用条件判断.循环等语句编辑 Shell 脚 ...

  2. Shell 编程之正则表达式与文本处理器--(grep,egrep 与文本处理器-sed、awk、sort、uniq、tr)

    文章目录 一.正则表达式 1.1 正则表达式概述 1.1.1 正则表达式的定义 1.1.2 正则表达式用途 1.2 基础正则表达式 1.3 基础正则表达式:grep命令 1.3.1 查找特定字符 1. ...

  3. Shell编程之正则表达式与文本编辑器

    一.正则表达式 1.正则表达式概述 通常用于判断语句中,用来检查某一字符串是否满足某一格式 正则表达式是由普通字符与元字符组成 普通字符包括大小写字母.数字.标点符号及一些其他符号 元字符是指在正则表 ...

  4. 七:Shell脚本:正则表达式与文本处理器三剑客grep,egrep, sed,awk

    正则表达式定义 正则表达式,又称正规表达式.常规表达式 使用字符串来描述.匹配一系列符合某个规则的字符串 ●正则表达式组成 ◆普通字符 大小写字母.数字.标点符号及一些其他符号 ◆元字符 在正则表达式 ...

  5. Shell编程之正则表达式(及操作案例)

    Shell 编程之正则表达式 正则表达式 1.正则表达式定义 正则表达式又称正规表达式.常规表达式.在代码中常简写为 regex.regexp 或 RE.正则表达式是使用单个字符串来描述.匹配一系列符 ...

  6. 理论+实操:shell 变成之正则表达式与文件处理器

    文章目录 一 : 正则表达式 1.1 正则表达式概述 1.2**正则表达式的定义** 1.3 正则表达式用途 二 : 基础正则表达式(grep) 2.1**基础正则表达式示例** 2.1.1 查找特定 ...

  7. shell编程之正则表达式

    shell编程之正则表达式 文章目录 shell编程之正则表达式 正则表达式 1. 正则表达式是什么? 2. 正则能干什么? 3. 正则当中名词解释 4. 第一类正则表达式 ㈠ 正则中普通常用的元字符 ...

  8. shell编程之正则表达式与总结(grep,egrep)与文件处理器和总结(sed,awk,sort,uniq)

    文章目录 前言 一:基础正则表达式 1.1:正则表达式的定义 1.2:正则表达式用途 1.3:基础正则表达式 1.4:基础正则表达式:grep命令 1.4.1:查找特定字符 1.4.2:利用中括号&q ...

  9. shell编程之正则表达式——理论基础

    目录 前言 一.基础正则表达式 1.1 正则表达式的定义 1.2 正则表达式用途 1.3 基础正则表达式 1.4 基础正则表达式:grep命令 1.4.1 查找特定字符 1.4.2 利用中括号&quo ...

  10. shell编程之正则表达式与总结(grep,egrep)

    文章目录 前言 一:基础正则表达式 1.1:正则表达式的定义 1.2:正则表达式用途 1.3:基础正则表达式 1.4:grep命令 1.4.1:查找特定字符 1.4.2:利用中括号"[]&q ...

最新文章

  1. 2019微生物组—宏基因组分析技术研讨会第五期
  2. sass学习笔记(二):sass的不同样式风格的输出方法
  3. mysql 恢复数据库 source_mysql数据库备份及恢复命令 mysqldump,source的用法 | 很文博客...
  4. c#获取当前应用程序所在路径
  5. 【数据结构与算法】二叉查找树的Java实现
  6. 【Unity新闻】如何使用Unity进行机器人模拟? | AR/VR全球需求率激增1400%
  7. matlab误比特率,[转载]使用Matlab进行误比特率仿真
  8. 36 万美元套利!3 步骤揭秘黑客 DeFi 闪电贷全过程
  9. dijkstra--非负权值的单源最短路径STL实现(邻接表+优先队列) (带路径)
  10. idea中字体由繁体变简体
  11. 常用十六进制颜色对照表代码
  12. USRP X310 Windows烧录
  13. TK1刷机以及简单配置
  14. 试用期、见习期、实习期、合同期、服务期的区别与应用
  15. mysql crud,mysql的CRUD操作实现
  16. 面对人工智能,我们应有的态度
  17. ghost系统后只有一个盘了别的分区的数据怎样恢复
  18. 『.NET Tools』C#/.NET 计算文本相似度
  19. xss漏洞之——XSS平台搭建
  20. 学计算机大学累不累_美国理工届性价比最高大学,被誉为南方MIT,学计算机的“风水宝地”!...

热门文章

  1. Vista 自动激活工具(最新 最权威 所有版本 可升级)
  2. 解决Windows10 14393版本迅雷崩溃问题
  3. 用HTML和CSS制作一个带图片的旋转立方体
  4. Frank计算机基础硬件笔记
  5. react-native系列(11)组件篇:Image图片加载和ImageEditor图片剪切
  6. 解二元一次方程组的c语言编程,我有一个C语言解二元一次方程组的程序需要解释说明...
  7. 公开说说别人看不到_为什么我在QQ空间里面发表说说别人看不到?
  8. excel输入 正在计算机,在Excel中输入内容后如何自动填写日期和时间
  9. Appdata\Local Roaming LocalLow文件夹
  10. Freenom免费域名申请