shell编程三剑客之grep与正则表达式
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与正则表达式相关推荐
- Shell编程三剑客
文章目录 前言 grep 选项 sed 工具 概述 基本语法 常见的 sed 命令选项 常见的操作 实验 结合正则表达式 输出符合条件的文本 删除符合条件的文本 替换符合条件的文本 迁移符合条件的文本 ...
- Shell编程(三)grep sed awk文本处理三剑客
上一章: Shell编程(二)_做测试的喵酱的博客-CSDN博客 一.ps命令 指令: ps 作用: 主要是查看服务器的进程信息 选项含义: -e:等价于 '-A' ,表示列出全部的进程 -f:显示全 ...
- shell命令三剑客之grep命令详解
文章目录 1. 通配符(globbing) 2. grep 2.1 linux系统支持的三种形式的grep命令 3. 正则表达式 3.1 扩展正则表达式 4. IP的正则 4.1 ip地址的类别 4. ...
- shell 编程三剑客之一:grep 详解
grep 命令的功能是过滤制定规则的信息. 冷知识:grep的名字来源于一个sed格式:g/re/p g:所有行,re:正则规则,p:打印 sed 的详细介绍以后我会写,这是一大块知识点,需要花一些 ...
- shell 编程三剑客之三:awk 详解
一. 基本介绍 awk 是一门特殊的编程语言, 它非常适合处理一些任务(改变数据格式.验证数据的有效性.搜索特定的数据项.求和.打印报表等), 经常只需要一两行便可搞定. 一个 awk 程序由一系列的 ...
- Shell编程三剑客之awk
文章目录 引言 一.awk工具 1.awk概述 2.awk工具介绍 二.awk工作原理 三.awk内置变量 四.awk用法示例 1.打印文本内容 1.1 打印出网卡的IP地址 1.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. ...
- shell编程之正则表达式与总结(grep,egrep)与文件处理器和总结(sed,awk,sort,uniq)
文章目录 前言 一:基础正则表达式 1.1:正则表达式的定义 1.2:正则表达式用途 1.3:基础正则表达式 1.4:基础正则表达式:grep命令 1.4.1:查找特定字符 1.4.2:利用中括号&q ...
- 独一无二 Shell 编程之正则表达式 与文本处理器 详细解释
技能展示: 基础正则表达式 扩展正则表达式 sed 工具使用方法 awk 工具使用方法 4.1 正则表达式 之前学习了 Shell 脚本的基础用法,已经可以利用条件判断.循环等语句编辑 Shell 脚 ...
最新文章
- 玩转GridView
- 正则表达式中模式修正符作用详解(i、g、m、s、x、e)
- 如何安装指定版本的 SAP Spartacus
- java socket编程实现聊天程序_java Socket编程 聊天程序 服务器端和客户端
- 在Nginx上配置NameCheap免费SSL
- 用Redis实现Session功能
- oracle ctl 递增,增加oracle的控制文件
- leetcdoe 26 删除排序数组中的重复项(python)
- VS2019 打包WPF安装程序最新教程(图文详解)
- WinDriver linux 安装说明
- python淘宝自动发货源码_发货100虚拟商品自动发货系统下载
- java中随机产生一个数_在Java中产生随机数的两个方法
- 电容式液晶屏可实现多点触控
- 【10】Ubuntu16虚拟机调整窗口大小自适应
- 任务分配到每个工作日
- MPT——cost function推导过程
- DX9的一些方法介绍-------VB6编程学习DX9游戏编程DirectX9编程2D小游戏源码冷风引擎CoolWind2D游戏引擎(9)
- Java获取国内各个地区实时天气
- 2018百度指数采集方法与工具
- 【蓝桥软件学院】Android中五大Manager详解及使用技巧
热门文章
- AI不小心画版变透明了如何恢复
- 如何在powerpoint(幻灯片)中加入视频?
- MTT S80相当于什么显卡 mtt s80评测 mtts80显卡性能
- unity 代码执行耗时_您可以使用代码自动执行6项耗时的任务
- “温酒吧”不得不说的故事 (转)
- Maya摄影机序列(Camera Sequencer)
- 洛谷 P1137 旅行计划 1
- 【开源可定制笔记工具】
- 2021年起重机司机(限桥式起重机)最新解析及起重机司机(限桥式起重机)模拟考试
- 数学建模_matlab_逻辑斯蒂生长函数幂指函数生长函数_鲈鱼生长为例