shell编程三剑客之grep与正则表达式

  • 一 grep工具
    • 1.1 常用选项
    • 1.2 选项解释
  • 二 正则表达式
    • 2.1 正则表达式的含义
    • 2.2 正则表达式的应用场景
    • 2.3 正则表达式名词解释
    • 2.4 第一类正则表达式
    • 2.5 第二类正则表达式

一 grep工具

grep是行过滤工具,用于根据关键字进行行过滤

语法:
grep -选项 “关键字” 文件名

1.1 常用选项

选项 含义
-i 不区分大小写
-v 查找不包括关键字的行,即反向选择
-w 按单词进行搜索,匹配有且仅有的字符
-o 仅显示匹配到的字符串
-c 统计匹配到的次数
-n 显示行号
-r 逐层遍历目录查找
-A n 显示匹配行及后面(after)n行
-B n 显示匹配行及前面(before)n行
-C n 显示匹配行及前后n行
-e 使用正则表达式
-E 使用扩展正则表达式
-P 匹配数字、字母或字符串

1.2 选项解释

测试文本内容如下

grep -w
命令: grep -w ‘cen’ sedtest.txt

由图可见,在不包含选项-w的时候,只要文本中有“cen”就会过滤出来,而加上-w之后需要文本中存在这个单词才会过滤出来

grep -o
命令: grep -o ‘cenjeal’ sedtest.txt

由图可见,不包含-o的时候会输出一整行,而使用-o选项后则只显示匹配的字符串

grep -P
命令:grep -P ‘\d’ sedtest.txt 匹配数字
命令:grep -P ‘\w’ sedtest.txt 匹配字母数字下划线
命令:grep -P ‘\s’ sedtest.txt 匹配字符串

二 正则表达式

2.1 正则表达式的含义

正则表达式(Regular Expression、regex或regexp,缩写为RE),也译为正规表示法、常规表示法,是一种字符模式,用于在查找过程中匹配指定的字符。
支持正则表达式的程序如:find| vim| grep| sed |awk

2.2 正则表达式的应用场景

1.匹配邮箱、匹配身份证号码、手机号、银行卡号等
2.匹配某些特定字符串,做特定处理等等

2.3 正则表达式名词解释

元字符

指那些在正则表达式中具有特殊意义的专用字符,如:点(.) 星(*) 问号(?)等

前导字符

位于元字符前面的字符. abc* aooo.

2.4 第一类正则表达式

普通常用元字符

元字符 功能 示例
. 匹配除了换行符以外的任意单个字符
* 前导字符出现0次或连续多次
.* 匹配任意长度字符
^ 行首(以…开头) ^root
$ 行尾(以…结尾) root$
^$ 匹配空行 常用
[] 匹配括号里任意单个字符或一组单个字符 [abc]
[^] 匹配不包含括号里任一单个字符或一组单个字符 [^abc]
^[^] 匹配不以括号里任意单个字符或一组单个字符开头 ^[^abc]

其他常用元字符

元字符 功能 示例
\< 取单词的头 grep ‘\<hel’ 1.txt
\> 取单词的尾 grep ‘rld\>’ 1.txt
\< \> 精确匹配 grep ‘\<hello\>’ 1.txt
\{n\} 匹配前导字符连续出现n次
\{n,\} 匹配前导字符至少出现n次
\{n,m\} 匹配前导字符出现n次与m次之间
\( \) 保存被匹配的字符 sed ‘s/(10.1.1.).1/\1.254/g’ 1.txt
\d 匹配数字(grep -P) [0-9]
\w 匹配字母数字下划线(grep -P) [a-zA-Z0-9_]
\s 匹配空格、制表符、换页符(grep -P) [\t\r\n]

常用扩展元字符
grep必须加 -E 或者使用egrep

sed必须加 -r

扩展元字符 功能 示例
+ 匹配一个或多个前导字符
匹配零个或一个前导字符
| 匹配a或b
() 组字符(看成整体) (my|your)self:表示匹配myself或匹配yourself
{n} 前导字符重复n次
{n,} 前导字符重复至少n次
{n,m} 前导字符重复n到m次

2.5 第二类正则表达式

扩展元字符 功能 示例
[:alnum:] 字母与数字字符 [[:alnum:]]+
[:alpha:] 字母字符(包括大小写字母) [[:alpha:]]{4}
[:blank:] 空格与制表符 [[:blank:]]*
[:digit:] 数字 [[:digit:]]?
[:lower:] 小写字母 [[:lower:]]{4,}
[:upper:] 大写字母 [[:upper:]]+
[:punct:] 标点符号 [[:punct:]]
[:space:] 包括换行符,回车等在内的所有空白 [[:space:]]*

shell编程三剑客之grep与正则表达式相关推荐

  1. Shell编程三剑客

    文章目录 前言 grep 选项 sed 工具 概述 基本语法 常见的 sed 命令选项 常见的操作 实验 结合正则表达式 输出符合条件的文本 删除符合条件的文本 替换符合条件的文本 迁移符合条件的文本 ...

  2. Shell编程(三)grep sed awk文本处理三剑客

    上一章: Shell编程(二)_做测试的喵酱的博客-CSDN博客 一.ps命令 指令: ps 作用: 主要是查看服务器的进程信息 选项含义: -e:等价于 '-A' ,表示列出全部的进程 -f:显示全 ...

  3. shell命令三剑客之grep命令详解

    文章目录 1. 通配符(globbing) 2. grep 2.1 linux系统支持的三种形式的grep命令 3. 正则表达式 3.1 扩展正则表达式 4. IP的正则 4.1 ip地址的类别 4. ...

  4. shell 编程三剑客之一:grep 详解

    grep 命令的功能是过滤制定规则的信息. 冷知识:grep的名字来源于一个sed格式:g/re/p  g:所有行,re:正则规则,p:打印 sed 的详细介绍以后我会写,这是一大块知识点,需要花一些 ...

  5. shell 编程三剑客之三:awk 详解

    一. 基本介绍 awk 是一门特殊的编程语言, 它非常适合处理一些任务(改变数据格式.验证数据的有效性.搜索特定的数据项.求和.打印报表等), 经常只需要一两行便可搞定. 一个 awk 程序由一系列的 ...

  6. Shell编程三剑客之awk

    文章目录 引言 一.awk工具 1.awk概述 2.awk工具介绍 二.awk工作原理 三.awk内置变量 四.awk用法示例 1.打印文本内容 1.1 打印出网卡的IP地址 1.2 打印出网卡的流量 ...

  7. 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. ...

  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 编程之正则表达式 与文本处理器 详细解释

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

最新文章

  1. 玩转GridView
  2. 正则表达式中模式修正符作用详解(i、g、m、s、x、e)
  3. 如何安装指定版本的 SAP Spartacus
  4. java socket编程实现聊天程序_java Socket编程 聊天程序 服务器端和客户端
  5. 在Nginx上配置NameCheap免费SSL
  6. 用Redis实现Session功能
  7. oracle ctl 递增,增加oracle的控制文件
  8. leetcdoe 26 删除排序数组中的重复项(python)
  9. VS2019 打包WPF安装程序最新教程(图文详解)
  10. WinDriver linux 安装说明
  11. python淘宝自动发货源码_发货100虚拟商品自动发货系统下载
  12. java中随机产生一个数_在Java中产生随机数的两个方法
  13. 电容式液晶屏可实现多点触控
  14. 【10】Ubuntu16虚拟机调整窗口大小自适应
  15. 任务分配到每个工作日
  16. MPT——cost function推导过程
  17. DX9的一些方法介绍-------VB6编程学习DX9游戏编程DirectX9编程2D小游戏源码冷风引擎CoolWind2D游戏引擎(9)
  18. Java获取国内各个地区实时天气
  19. 2018百度指数采集方法与工具
  20. 【蓝桥软件学院】Android中五大Manager详解及使用技巧

热门文章

  1. AI不小心画版变透明了如何恢复
  2. 如何在powerpoint(幻灯片)中加入视频?
  3. MTT S80相当于什么显卡 mtt s80评测 mtts80显卡性能
  4. unity 代码执行耗时_您可以使用代码自动执行6项耗时的任务
  5. “温酒吧”不得不说的故事 (转)
  6. Maya摄影机序列(Camera Sequencer)
  7. 洛谷 P1137 旅行计划 1
  8. 【开源可定制笔记工具】
  9. 2021年起重机司机(限桥式起重机)最新解析及起重机司机(限桥式起重机)模拟考试
  10. 数学建模_matlab_逻辑斯蒂生长函数幂指函数生长函数_鲈鱼生长为例