当前位置: 首页 > article >正文

shell中正则表达式

Linux 中, grep , sed, awk 等文本处理工具都支持通过正则表达式进行模式匹配
示例1:匹配passwd中所有包含 atguigu 的行。

[atguigu@hadoop101 shells]$ cat /etc/passwd | grep atguigu

1.常用特殊字符 ^  $  .  *  [ ]   \

^ :匹配一行的开头

$ :匹配一行的结束

.  :匹配一个任意的字符

* :不单独使用,他和上一个字符连用,表示匹配上一个字符 0 次或多次

[ ] :表示匹配某个范围内的一个字符

\ :表示转义,并不会单独使用。由于所有特殊字符都有其特定匹配模式,当我们想匹配

某一特殊字符本身时(例如,我想找出所有包含 '$' 的行),就会碰到困难。此时我们就要
将转义字符和特殊字符连用,来表示特殊字符本身
以下都是在passwd中匹配

会匹配出所有以 a 开头的行
[atguigu@hadoop101 shells]$ cat /etc/passwd | grep ^a

匹配出所有以 t 结尾的行
[atguigu@hadoop101 shells]$ cat /etc/passwd | grep t$

会匹配包含 rabt,rbbt,rxdt,root 等的所有行,两个点代表两个字符
[atguigu@hadoop101 shells]$ cat /etc/passwd | grep r..t

会匹配 rt, rot, root, rooot, roooot 等所有行
[atguigu@hadoop101 shells]$ cat /etc/passwd | grep ro*t

匹配 rt,rat, rbt, rabt, rbact,rabccbaaacbt 等等所有行
[6,8]------匹配 6 或者 8
[0-9]------匹配一个 0-9 的数字
[0-9]*------匹配任意长度的数字字符串
[a-z]------匹配一个 a-z 之间的字符
[a-z]* ------匹配任意长度的字母字符串
[a-c, e-f]-匹配 a-c 或者 e-f 之间的任意字符
[atguigu@hadoop101 shells]$ cat /etc/passwd | grep r[a,b,c]*t

就会匹配所有包含 /$b 的行。注意需要使用单引号将表达式引起来
[atguigu@hadoop101 shells]$ cat /etc/passwd | grep ‘/\$b’ 

 


http://www.kler.cn/a/228918.html

相关文章:

  • Java 接口安全指南
  • 计算机网络 (50)两类密码体制
  • C语言编程笔记:文件处理的艺术
  • Red Hat8:搭建FTP服务器
  • AI刷题-小R的随机播放顺序、不同整数的计数问题
  • 每打开一个chrome页面都会【自动打开F12开发者模式】,原因是 使用HBuilderX会影响谷歌浏览器的浏览模式
  • 爬虫(二)
  • CGAL-3D 凸包算法
  • Three.js学习6:透视相机和正交相机
  • 【机器学习】基于集成学习的 Amazon 用户评论质量预测
  • 如何使用MCSM搭建我的世界Java版服务器并实现远程联机游戏
  • 离线使用Element UI和Vue
  • 在bash或脚本中,如何并行执行命令或任务(命令行、parallel、make)
  • 2024美赛数学建模A题思路分析 - 资源可用性和性别比例(2)
  • 机器学习基础、数学统计学概念、模型基础技术名词及相关代码个人举例
  • 【网站项目】037物流管理系统
  • MySQL-----约束
  • Linux文件编译
  • Echarts饼图动态赋值
  • 在 MacOS 上虚拟化 x86Linux 的最佳方法(通过 Rosetta)
  • Unity Shader 滚动进度条效果
  • Vue中v-for列表渲染为什么必须绑定key属性
  • 算法每日一题: Nim游戏 | 找规律
  • RISC-V工业级芯片公司匠芯创,宣布软件开发包SDK正式开源
  • Linux常见面试题汇总
  • 破案记:Oracle数据库开机自动启动失败