Linux之grep、sed、awk

目录

1.grep

2.sed

3.awk


1.grep

grep 擅长过滤查找,按行进行过滤

例:

当有用户对我们的主机进行爆破攻击时,我们可以使用grep将 ip 查找出来,进行封锁等处理

在 /var/log 目录下的 secure 文件中存放在用户登录连接信息,我们可以从当中获取 ip

查看失败的登录

cat secure |grep 'Failed password'

 或

grep 'Failed password' secure

 

 可以配合正则表达式将 IP 过滤出来

grep 'Failed password' secure |grep -Po (25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)

 

 如果要查看登录了几次,可以现将 IP 地址进行排序,再去重

grep 'Failed password' secure |grep -Po (25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d) |sort -n |uniq -c

 -n 显示行号

grep -n 'tcp' a.txt

 -c 对结果行计数

grep -c 'tcp' a.txt

 

  -i 不区分大小写

grep -n 'tcp' a.txt -i

 

 -v 反向搜索,取反

grep -n 'udp' a.txt -v #将不含有 udp 的行过滤出来

 

 -w 精准匹配

grep -w 'tcp' a.txt

 

 -o 只显示匹配的结果

grep -o -n 'tcp' a.txt

 

-A2 同时打印搜索结果行的 后两行 ,A是after 的缩写

grep -A2 'ftp' a.txt

 

 -B3 同时打印搜索结果的前三行,B是before 的缩写

grep -B3 'ftp' a.txt

 

 -E 扩展正则表达式

grep -E '.tp' a.txt # .表示任一字符
grep -E 'ftp|ssh' a.txt #查找ftp 或者ssh , | 是或者的意思,可以写多个或者进行查找

 

-P 使用 perl 正则

grep -P "\d+" a.txt #匹配所有的数字
grep -P "\d{4,}" a.txt #匹配四位数的数字

 

 

2.sed

sed 主要用于取行或者修改替换

用法:sed [-nri] [动作] 目标文件

选项与参数:

-n :使用安静(silent)模式

-r :sed 的动作支持的是延伸正则表示法的语法

-i :直接修改读取的文件内容,而不是输出到终端

动作说明:[n1][,n2]function

n1, n2 一般表示为行号,[,n2] 表示这个参数可选,可有可无

function:

a:指定行后面插入一行

d:删除

i:指定行前面插入一行

p:打印,  #一般和前面的 -n 参数以前用

s:替换 需要忽略大小写,全局替换需要g

例 :p 打印

含有 a 的行

sed '/a/p' b.txt  #默认打印所有行,并且匹配到的a所在行重新打印一遍

  

sed -n '/a/p' b.txt # 加上 -n 进入安静(silent)模式,就只打印含有 a 的行

 打印含有 ‘tcp’ 的行

sed -n '3p' b.txt #打印第三行
sed -n '1,3p' b.txt #打印1-3行

 例: d 删除

删除含有 a 的行(并不是删除源文件的a,只是将结果删除显示在终端)

 例:使用 -i 删除文件内容

删除原文件中含有 a 的行

 例:指定行号进行删除

sed '1,3d' b.txt # 显示在终端的删除前三行
sed -i '1,3d' b.txt #删除原文件前三行

 例:-a  插入数据

在第三行后面插入数据

sed '3a yeyeye' b.txt

 在第二行前面插入一行数据

sed '2i nonono' b.xtx

 加上 -i 就可以直接修改原文件

sed -i '2i nonono' b.xtx

 

 例: s 替换数据

将23替换成123

sed 's#23#123# b.txt

 

同一行的第一个替换,后面的不替换

 加上 g 可以进行全部替换

sed 's#a#xx#g' b.txt

 

忽略大小写进行替换 可以加gI 

sed 's#a#xx#gI' b.txt

3.awk

awk 用于取列

例:默认以空格进行分割列

取列

wak '{print $1}' b.txt #取第一列
wak '{print $2}' b.txt #取第二列
wak '{print $3}' b.txt #取第三列

 每一行的最后一列 NF

awk '{print $NF}' b.txt

 取第一列和最后一列

awk '{print $1,$NF}' b.txt

例:计算

第二列 乘以 第三列

awk '{print $1,$2*$3}' b.txt

 例:根据行号筛选内容

# a = 1 表示变量赋值,让 a=1
# a == 1 ,表示判断一下 a 的值是不是等于 1 ,等于 1 那么条件判断结果为真,不等 1 那么条件判断结果为假
# 支持符号: > < == >=   <=
awk 'NR==1' b.txt #取第一行
awk 'NR>1' b.txt #取行号大于2的内容
awk 'NR<=3' b.txt #取行号小于等于3的内容

 取行的同时取列

awk 'NR>1{print $1,$2*$3}' b.txt

取出含有 a 的行数

awk '/a/' b.txt

指定分隔符

awk -F ":" '{print $1}' /etc/passwd # 指定以 :进行分割
# && 表示 and ,两个条件同时成立
# || 表示 or ,满足一个条件即可
awk -F ':' 'NR==2 || NR==6 {print $1}' etc/passwd # 取出第二
行或第六行的第一列数据,分隔符为:

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

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

相关文章

信息搜集简要总结

信息搜集 一.遍历目录&#xff1a; ​ 可以使用dirsearch和御剑等目录扫描软件来进行目录遍历&#xff0c;得到一些信息&#xff0c;注意&#xff0c;有的时候扫不出来&#xff08;我使用dirsearch的时候经常出现扫不出来的时候&#xff0c;因此有的时候可以rce或者传马蚁剑连…

自定义 springboot 启动器 starter 与自动装配原理

Maven 依赖 classpath 类路径管理 Maven 项目中的类路径添加来源分为三类 自定义 springboot starter starter 启动器定义的规则自定义 starter 示例 自动装配 原文链接&#xff0c;点击跳转 — —

自动化测试成本高效果差,意义在哪?

自动化测试的成本高效果差&#xff1f;首先这个结论就太过武断了一些。 任何技术都需要放到适合的地方去使用&#xff0c;否则一定是达不到理想的效果的。举例大炮打蚊子&#xff0c;同样是成本高效果差&#xff0c;难道大炮就没有存在的意义了吗&#xff1f; 当然不是&#…

ATKXCOM串口助手接受中文字符乱码问题

中文乱码大多是编码格式问题&#xff0c;如心知天气API返回的数据编码格式为UTF-8格式&#xff0c;同理串口调试助手需要更改为对应的编码格式&#xff0c;正点原子的串口调试助手具有多种编码格式可以更改。 PS:点击左下角设置图标即可设置

OpenAI发布AGI安全风险框架!董事会可随时叫停GPT-5等模型发布,奥特曼也得乖乖听话

OpenAI 再次强调模型安全性&#xff01;AGI 安全团队 Preparedness 发布模型安全评估与监控框架&#xff01; 这两天关注 AI 圈新闻的小伙伴们可能也有发现&#xff0c;近期的 OpenAI 可谓进行了一系列动作反复强调模型的“安全性”。 前有 OpenAI 安全系统&#xff08;Safety…

工业镜头常见的类型

在机器视觉中&#xff0c;工业镜头作为机器视觉系统的核心部件&#xff0c;常常需要和工业相机搭配使用。工业镜头&#xff0c;属于一种光学系统。光学系统是指由透镜、反射镜、棱镜和光阑等多种光学元件按一定次序组合成的系统。那么工业镜头都有哪些类型&#xff1f; 一、按照…

搭建APP应用程序如何选择服务器

Hello&#xff0c;各位同学们好&#xff01;我是咕噜铁蛋&#xff0c;我经常收到许多关于如何搭建APP的询问。其中&#xff0c;如何选择服务器是许多初创企业和开发者经常面临的问题。带着这些问题我也通过一些科技手段收集整理了些知识&#xff0c;今天我就和大家来来探讨如何…

BKP 备份寄存器 RTC 实时时钟-stm32入门

这一章节我们要讲的主要内容是 RTC 实时时钟&#xff0c;对应手册&#xff0c;是第 16 章的位置。 实时时钟这个东西&#xff0c;本质上是一个定时器&#xff0c;但是这个定时器&#xff0c;是专门用来产生年月日时分秒&#xff0c;这种日期和时间信息的。所以学会了 STM32 的…

HTML + JavaScript 实现网页录制音频与下载

HTML JavaScript 实现网页录制音频与下载 HTML JavaScript 实现网页录制音频与下载简介getUserMediaMediaRecorder获取和处理音频流实现音频的录制和播放音频效果的处理实时语音通话的应用兼容性和 Latency 问题 项目代码运行实例参考源码下载 HTML JavaScript 实现网页录制…

JavaSE学习笔记 Day21

JavaSE学习笔记 Day21 个人整理非商业用途&#xff0c;欢迎探讨与指正&#xff01;&#xff01; 上一篇 文章目录 JavaSE学习笔记 Day21十八、多线程18.1多线程概念18.2线程的组成18.3线程的创建18.3.1继承Thread类18.3.2实现Runnable接口18.3.3两种创建线程的区别 18.4线程启…

银行测试:第三方支付平台业务流,功能/性能/安全测试方法

1、第三方支付平台的功能和结构特点 在信用方面&#xff0c;第三方支付平台作为中介&#xff0c;在网上交易的商家和消费者之间作一个信用的中转&#xff0c;通过改造支付流程来约束双方的行为&#xff0c;从而在一定程度上缓解彼此对双方信用的猜疑&#xff0c;增加对网上购物…

【lesson18】MySQL内置函数(1)日期函数和字符串函数

文章目录 日期函数函数使用具体使用案例建表插入数据建表插入数据 字符串函数函数使用具体使用案例建表插入数据测试 日期函数 函数使用 获得年月日&#xff1a; 获得时分秒&#xff1a; 获得时间戳&#xff1a; 获得现在的时间&#xff1a; 在日期的基础上加日期&#xf…

C++ Qt开发:TableWidget表格组件

Qt 是一个跨平台C图形界面开发库&#xff0c;利用Qt可以快速开发跨平台窗体应用程序&#xff0c;在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置&#xff0c;实现图形化开发极大的方便了开发效率&#xff0c;本章将重点介绍TableWidget表格组件的常用方法及灵活运用。 …

基于python的leetcode算法介绍之递归

文章目录 零 算法介绍一 简单示例 辗转相除法Leetcode例题与思路[509. 斐波那契数](https://leetcode.cn/problems/fibonacci-number/)解题思路&#xff1a;题解&#xff1a; [206. 反转链表](https://leetcode.cn/problems/reverse-linked-list/)解题思路&#xff1a;题解&…

深度学习 该用什么标准判断差异最小

决定差异最小的标准通常依赖于您的具体问题和任务。以下是一些常见的用于评估预测性能的标准和思路&#xff1a; 1. **均方根误差 (RMSE):** RMSE 是预测值和真实值之间差异的平方的平均值的平方根。它对较大的误差更加敏感。 from sklearn.metrics import mean_squared_error…

Jmeter中使用py插件

-安装插件 1、下载插件jython-standalone-2.7.0.jar到jmeter的lib\ext目录下 链接&#xff1a; https://pan.baidu.com/s/13ZXtUwoQEV62M98GaIR26w 提取码&#xff1a;ioyk 2、重启jmeter&#xff0c;查看是否生效&#xff0c;如果这个语言有python的选项说明可以了&#xf…

VMware虚拟机安装Linux操作系统

1.CentOS 7安装 软件选择&#xff0c;安装桌面系统 2.配置虚拟机网卡 3.连接Xshell

测试用例评审流程优化

测试用例评审是QA日常工作流程中的关键一环&#xff0c;是QA同学完善测试用例、交流测试经验的好机会。 负责组内测试用例建设以来&#xff0c;作者对于评审流程做了一些优化工作。本文作者将整个优化过程中的心得体会做了一个总结&#xff0c;希望能给大家带来帮助。 01 原始流…

Model-based value iteration and policy iteration pseudocode

Note that the symbols used in the pseudocode below have the following meanings: MDP: Markov Decision Process;V(s): Value function, the avg reture of one state;π(s): Policy, in the sense that for a given state s, π(s)represents the action that the agent …

【MySQL】 表的操作

// 创建表 create table 表名();// 查看表结构 desc 表名;// 新增一列表信息 alter table 表名 add 字段名 字段类型 (after 原表某一字段名);// 删除一列表信息 alter table 表名 drop 字段名;// 修改表字段名字 alter table 表名 change 原字段名 新字段名 类型; // 新字…