正则表达式与“三贱客”

news2024/11/22 23:43:45

第三阶段基础

时  间:2023年7月11日

参加人:全班人员

内  容:

正则表达式与“三贱客”

目录

shell脚本的基本应用:

一、正则表达式与grep

2)正则表达式的组成

1)正则表达式grep常见的选项

2)正则表达式的元字符

4、扩展正则表达式

二、sed的使用       二哥————————sed

1)sed的作用

2)sed的作用流程

1)sed命令选项

2)sed的操作符号

3、sed的基本应用

三、awk的使用   三弟————————awk

1、awk的作用

2、awk的变量

3、awk的基本应用


shell脚本的基本应用

一、正则表达式与grep

1、正则表达式的作用正则表达式的组成

1)正则表达式的作用

针对文件或者文本内容进行处理;

帮助用户快速查找文本文件内容。

2)正则表达式的组成

普通字符

大写A-Z

小写a-z

符号

元字符

2、正则表达式的常见选项和正则表达式常见的元字符

1)正则表达式grep常见的选项

-n:显示行号

-o:只显示匹配内容

-i:不区分大写或者小写字母

-v:取反

-E:支持扩展

-q:静默执行

-w: 识别为单词

-c: 统计匹配的行数

2)正则表达式的元字符

^:匹配行起始内容

$:匹配行结束内容

.:匹配任意单字符

.*:匹配任意字符

[]:匹配括号里边的内容

[-]:匹配括号里边内容的范围

{n}:匹配的范围的次数

[n1-n2]:匹配开始和结束内容

{ n,m }:重复前面的一个字符n到m次

{ n, }:重复前面的一个字符至少n次

[^]:匹配括号之外的任意字符

\:转义字符

\<: 固定词首

\>: 固定词尾

3、正则表达式的基本应用(grep——————三贱客之一)

1)过滤关键字是the显示出来

grep -n 'the' test.txt

2)查看行开始是the显示出来

grep -n '^the' test.txt

3)匹配任意单个字符

grep -n 'w.d' test.txt

4)只显示匹配的内容

grep -o 'wod' test.txt

5)通配符应用匹配开始是w结束是d中间的任意字符

grep -n 'w*d' test.txt

6)匹配括号里边的内容(括号内表示“或”

grep -n 'sh[io]rt' test.txt  

7)转移字符的基本应用,过滤IP地址信息

grep -n -E  "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" test.txt

等同于

egrep -n    "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" test.txt

4、扩展正则表达式

1)扩展正则表示常见的元字符

+:重复一次或者多次前面字符显示出来

:显示当前字母前一个字符

|:或者,显示多个字符

():查找组字符串

()+:辨别多个重复组

2)扩展正则表达式的应用

egrep -n 'wo+d' test.txt

将重复o的内容显示出来

egrep -n '?d' test.txt

将d前边内容显示出来

egrep -n 'The|the' test.txt

将匹配的The或者the显示出来

egrep -n '(h|o|r)' test.txt

将包含h、o、r的字符所在行内容显示出来

egrep -n 's(hor)t' test.txt

将开头s结束t中间连续是hor的单词显示出来

根据上图测试:

egrep -n 'wo+d' test.txt

egrep -n '?d' test.txt

egrep -n 'The|the' test.txt

egrep -n '(h|o|r)' test.txt

egrep -n 's(hor)t' test.txt

二、sed的使用       二哥————————sed

1、sed的作用和sed的工作流程

1)sed的作用

sed是一个文本文件解析转换工具

用于读取、修改、显示数据

2)sed的作用流程

读取数据:从文件、输入、管道命令中读取数据,临时存储数据

执行:根据sed命令在模式操作空间中进行无交互修改数据

显示:将文本文件的修改结果进行打印显示

2、sed命令常见的选项和操作符

1)sed命令选项

-n:显示处理后的结果

-h:显示帮助

-e:指定命令或者脚本处理输入的文本文件

-f:指定脚本处理输入的文本文件

-i:直接编辑文本文件

2)sed的操作符号

a:添加内容

d:删除内容

p:打印内容

s:替换内容

y:字符转换

c:将特定行替换成指定的内容

3、sed的基本应用

1)显示1到5行数据

 sed -n '1,5p' test.txt

2)显示奇数行

sed -n -e '1p;3p;5p' test.txt

3)删除第一行数据

sed '1d' test.txt

4)删除空行

sed -i '/^$/d' a.sh

删除注释

sed -i ‘/^#/d’ a.sh

5)将大写THE修改为小写the

sed -i 's/the/The/' test.txt

6)He关键字添加注释

sed -i '/^ip/s/^/#/' test.txt

7)迁移字符将1~5行迁移到15行后

sed -i '1,3{H;d};8G' test.txt

8)输出只显示ip信息之sed用法

ifconfig ens33 | sed –n ‘2 s/.*inet  //p’ | sed ‘s/n.*//’

ifconfig ens33 |sed  -nr  '2 s/.*et  (.*)  n.*/\1/gp'

三、awk的使用   三弟————————awk

1、awk的作用

过滤和读取数据使用

2、awk的变量

-F

FS:文本字段的分隔符,可以使用空格为占位符

NF:处理行数

NR:处理数据的行号

$0:处理数据的整行数据

$n:处理数据行的第几列数据

3、awk的基本应用

1)显示所有内容

awk '{print}' 1.txt  

2)显示第一列数据

awk '{print $1}' 1.txt

3)在第一列和第二列之间添加--

awk '{print $1"--"$2}' 1.txt

4)显示第一行和第二行数据

awk 'NR==1,NR==2{print}' 1.txt

拓展:

1、对历史命令进行排序和查重,统计

例:history

history | sort

history | sort –nr  排序  r是逆序

history | awk '{print $2}'

sort  | uniq –c  去重,统计出现次数

history | awk '{print $2}' | sort |uniq -c |sort -nr |head -5  

从大到小统计历史使用命令的次数并显示出现最高次数的前五个

history | awk '{print $2}' | sort |uniq -c |sort -nr |sed -n '1,5p'

history | awk '{print $2}' | sort |uniq -c |sort -nr |awk 'NR<=5{print}'

cat www.new1019.xianqujingpinwang.log| sed -n '/23\/Nov\/2022:0/,/23\/Nov\/2022:12/p'|grep `date "+%d/%b"`|awk '{print $1}'|sort |uniq -c |sort -rn|wc -l 

查看访问当前网站的日志文件,并筛选出在12小时内出现频率次数最高的ip地址,以防此ip地址是恶意攻击ip

上述实验可以用我们apache实验代替验证!

cat /var/log/httpd/access_log |awk '{print $1}'

cat access_log |awk '{print $1}' |sort|uniq -c |sort -nr |wc -l

可以统计出,在当前时间内,只有一个IP地址对我们httpd进行了访问

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/752937.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《向量数据库指南》:向量数据库Pinecone关键概念和工作流程

目录 用例 关键概念 向量搜索 向量嵌入 向量数据库 工作流程 定价和部署选项 开始使用 介绍PINECONE向量数据库 Pinecone使构建高性能的向量搜索应用程序变得轻松。 它是一个托管的、云原生的向量数据库,具有简单的API和无需基础架构的优势。 Pinecone具有以下特…

[论文分享]SimMIM:一种简单的掩模图像建模框架

文章地址&#xff1a;https://arxiv.org/abs/2111.09886 代码地址&#xff1a;GitHub - microsoft/SimMIM: This is an official implementation for "SimMIM: A Simple Framework for Masked Image Modeling". 1 摘要 本文介绍了SimMIM&#xff0c;这是一个用于掩模…

React初学者需要的库从哪里下载?

在react官网下载react.js的方法介绍 1、访问react的github官方页面 访问地址为&#xff1a;Downloads | Reacthttps://react-cn.github.io/react/downloads.html 2、点击Download页面中的"Download Starter Kit"按钮&#xff0c;进行下载 学react的时候用到了babe…

波士顿矩阵模型:产品定位

波士顿矩阵 波士 顿 矩 阵 (BCG Matrix) 又称市 场 增 长 率 — 相 对 市 场 份 额 矩 阵 、波士顿咨 询 集 团 法、四象限分析法、 产 品系列 结 构管理法等。 波士 顿 矩 阵是由美国大型商业 咨 询 公司 —— 波士 顿 咨 询 集 团 首 创 的一种 规 划企业产品 组 合的方法。…

什么是统一建模语言(UML)UML与UML类图的基本概念

什么是统一建模语言UML&#xff08;Unified Modeling Language&#xff09; UML&#xff08;统一建模语言&#xff09;是一种通用的建模语言&#xff0c;用于描述软件系统的结构、行为和交互。它提供了一组符号和规则&#xff0c;用于创建可视化的图形模型&#xff0c;帮助开发…

【雕爷学编程】Arduino动手做(149)---MAX9814咪头传感器模块6

37款传感器与执行器的提法&#xff0c;在网络上广泛流传&#xff0c;其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块&#xff0c;依照实践出真知&#xff08;一定要动手做&#xff09;的理念&#xff0c;以学习和交流为目的&am…

resolvecomreference任务返回了false,但未记录错误

IDE从VS2015升级到了VS2022&#xff0c;然后就报了这个错&#xff0c;百度搜了下&#xff0c;没有啥结果&#xff0c;后来发现&#xff0c;2015可以用的一个dll在2022不能用了&#xff0c;把不能用的dll移除即可

VxLAN学习

目录 什么是VXLAN 为什么需要VXLAN 虚拟机动态迁移&#xff0c;要求提供一个无障碍接入的网络 什么是服务器虚拟化技术&#xff1f; 什么是虚拟机动态迁移&#xff1f; VXLAN如何满足虚拟机动态迁移时对网络的要求&#xff1f; 数据中心租户数量激增&#xff0c;要求提供…

TIOBE 2023年7月编程语言排行榜:C++即将超越C!

一、TIOBE统计数据&#xff08;2023年7月&#xff09; TIOBE Index编程社区指数是编程语言流行度的一个指标。评级基于全球熟练工程师的数量、课程和第三方供应商的数量。Google、Bing、Yahoo!、维基百科、亚马逊、YouTube 和百度等流行搜索引擎用于计算评级。 七月头条&#…

性能测试工具 Jmeter 测试 JMS (Java Message Service)/ActiveMQ 性能

目录 前言 ActiveMQ 介绍 准备工作 编写jndi.properties添加到ApacheJMeter.jar 中 下载 ActiveMQ 配置 Jmeter 进行测试 点对点 (Queues 队列) 配置 Jmeter 进行测试 发布/订阅 (Topic 队列) 配置发布 Publisher 配置订阅 Subscriber 总结 前言 JMeter是一个功能强大…

【Java】如何有效防止API的重放攻击?API接口防止参数篡改?

文章目录 前言一、API接口常见的安全防护要做到主要有以下几点&#xff1a;二、请求参数防篡改三、防止重放攻击3.1、基于timestamp的方案3.2、基于nonce的方案3.2、基于timestamp和nonce的方案3.3、微信公众号如何保证消息不会被重放攻击 前言 API重放攻击(Replay Attacks)又…

uniapp调接口出现跨域问题。

今天在写uniapp项目的时候&#xff0c;使用在线模拟接口的时候&#xff0c;出现跨域问题。 【问题描述】&#xff1a; ①在内嵌浏览器运行&#xff0c;不会出现跨域问题&#xff0c;好像是内嵌浏览器自动去掉了跨域问题。 ②在外部浏览器调用的时候会出现跨域问题。&#xf…

Yalmip工具箱使用教程(2)-决策变量进阶

博客中所有内容均来源于自己学习过程中积累的经验以及对yalmip官方文档的翻译&#xff1a;https://yalmip.github.io/tutorials/ 1.决策变量的定义 1.1 sdpvar 上文简单介绍了sdpvar函数的用法&#xff0c;接下来将对其进行详细介绍。复习一下&#xff0c;sdpvar函数的基本语…

常用化合物谱图数据库查询系统-40个软件免费查!

化学图谱是用于描述化学物质结构和性质的图形化表示方法&#xff0c;在有机化学、材料科学、生物化学、药物化学等领域都被广泛的应用研究分析。不同类型的化学谱图适用于不同的化学分析和研究领域&#xff0c;为此笔者调研了常用化合物谱图数据库及各个类型的主流使用化学谱图…

(RX200)R5F52315ADFP/R5F52318ADFL/R5F52316CDFL微控制器基于RXv2 32位内核,54MHz 闪存 LQFP

RX200 32位微控制器 (MCU) 在功率效率和性能之间实现了平衡。这些MCU在工作模式下的电流消耗为0.12mA/MHz&#xff0c;在待机模式下的电流消耗仅为0.8μA&#xff08;保留RAM内容&#xff09;。RX200 MCU具有54MHz的最高CPU运行速度&#xff0c;可提供4.16 CoreMark/MHz的高性能…

Home Assistant 南方电网 计算电费

目录 1.China Southern Power Grid Statistics集成2.获取当月用电情况3.计算电费然后在UI上显示3.效果 1.China Southern Power Grid Statistics集成 链接 2.获取当月用电情况 因为我的电费是固定的&#xff0c;没有阶梯电价 用电量 * 0.63906875 电费 3.计算电费然后在UI…

ESXI8.0安装教程,在VMware Workstation安装esxi

文章目录 &#x1f41f;前言&#x1f41f;安装&#x1f41f;在VMware WorkStation中创建虚拟机&#x1f41f;ESXI部署安装&#x1f41f;安装完成后配置 &#x1f41f;前言 ESXI8.0版本开始最低RAM从以前的4GB变为8GB 本文所使用到的镜像以及Key都可以到我的网站中下载 地址&…

Python——— 面向对象

&#xff08;一&#xff09;初识面向对象 Python完全采用了面向对象的思想&#xff0c;是真正面向对象的编程语言&#xff0c; 完全支持面向对象的基本功能&#xff0c;例如&#xff1a;继承、多态、封装等。 Python 支持面向过程、面向对象、函数式编程等多种编程范 式。 Pyth…

数据结构初阶--排序2

目录 前言快速排序思路hoare版本代码实现挖坑法代码实现前后指针法代码实现 快排优化三项取中法代码实现三指针代码实现 快排非递归代码实现 归并排序思路代码实现归并非递归代码实现 计数排序思路代码实现 前言 本篇文章将继续介绍快排&#xff0c;归并等排序算法以及其变式。…

2023年iOS App Store上架流程详解(上)

目录 1.注册开发者账号 2.登录并配置人员 3.申请证书和配置文件 一.证书管理​ 二.新建证书​ 三.使用appuploader服务同步证书​ 1&#xff09;申请证书 2&#xff09;添加Identifiers和配置App ID 3&#xff09;申请配置文件 1.在Xcode项目中配置签名 2.上传应用包…