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.hqwc.cn/news/286254.html

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

相关文章

外汇天眼:芝加哥商品交易所(CME)对鹰七公司规定进行罚款

国际衍生品市场CME集团发布了一则关于Eagle Seven LLC的纪律行动通知。根据一项和解提议&#xff0c;其中Eagle Seven LLC既未承认也未否认任何违规规定或事实陈述&#xff0c;纽约商业交易所&#xff08;NYMEX&#xff09;业务行为委员会的一个小组认定&#xff0c;在2022年2月…

APM固件编译和仿真

事情起因 主要想对无人机APM固件进行仿真的算法验证&#xff0c;因实际飞行的过程实际验证太浪费飞机了&#xff0c;所以就先试用仿真对算法进行仿真开发。 一&#xff0c;环境搭建 环境搭建我建议参考官方英文教程&#xff0c;英文教程写的比较全&#xff0c;不懂可以自己使…

【超图】SuperMap iClient3D for WebGL/WebGPU ——颜色(1)

作者&#xff1a;taco 在项目中通常会出现&#xff0c;高亮对象。给对象设置颜色的一些问题。那么针对颜色设置在超图的 iClient3D for WebGl/WebGPU 中又提供了哪些方式呢&#xff1f;本篇文章将介绍一些颜色的设置方法。以及一些颜色的参数设置。 在iClient3D for WebGl/WebG…

Java 8 中的 Stream:优雅的集合处理

Java 8 中的 Stream&#xff1a;优雅的集合处理 为什么需要 Stream&#xff1f;Stream 的特性Stream 基本操作1. 创建 Stream2. 中间操作2.1 过滤&#xff08;Filter&#xff09;2.2 映射&#xff08;Map&#xff09;2.3 截断&#xff08;Limit&#xff09; 3. 终端操作3.1 遍历…

干货教学!!!RHEL8中ansible中常用模块的使用

内容很长各位大老爷耐心观看 本章主要介绍ansible中最常见模块的使用 文件管理模块软件包管理模块服务管理模块磁盘管理模块用户管理模块防火墙管理模块 ansible的基本用法如下 ansible 机器名 -m 模块x -a “模块的参数” 对被管理机器执行不同的操作&#xff0c;只需要调…

【Image】图像处理

计算机视觉 CV Perception 如自动驾驶领域。 只要是从所谓的图像当中去抽取信息的过程&#xff0c;我们都叫做Perception。 视觉检测可以涵盖二维检测&#xff0c;如车辆、人和信号灯的检测。另外&#xff0c;还可以控制三维信息&#xff0c;直接在三维空间中操作数据。 SL…

内网BUG管理系统本地部署并结合内网穿透实现异地远程访问

文章目录 前言1. 本地安装配置BUG管理系统2. 内网穿透2.1 安装cpolar内网穿透2.2 创建隧道映射本地服务3. 测试公网远程访问4. 配置固定二级子域名4.1 保留一个二级子域名5.1 配置二级子域名6. 使用固定二级子域名远程 前言 BUG管理软件,作为软件测试工程师的必备工具之一。在…

Gartner发布2024 年技术提供商热门趋势:人工智能安全

GenAI 的采用有望带来商业收益&#xff0c;但也敲响了对其可能造成的危害的警报。产品领导者需要在透明度和安全性方面进行投资&#xff0c;以应对不断关注人工智能安全的监管和市场力量。 机会 随着人工智能产品在企业解决方案中的激增&#xff0c;负责任和安全的人工智能将越…

JVM虚拟机系统性学习-JVM调优实战之内存溢出、高并发场景调优

调优实战-内存溢出的定位与分析 首先&#xff0c;对于以下代码如果造成内存溢出该如何进行定位呢&#xff1f;通过 jmap 与 MAT 工具进行定位分析 代码如下&#xff1a; public class TestJvmOutOfMemory {public static void main(String[] args) {List<Object> list…

【Proteus仿真】【Arduino单片机】定时智能插座开关

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真Arduino单片机控制器&#xff0c;使LCD1602液晶&#xff0c;DS18B20温度传感器、按键、蜂鸣器、继电器开关、HC05蓝牙模块等。 主要功能&#xff1a; 系统运行后&#xff0c;LCD16…

SQL进阶理论篇(十二):InnoDB中的MVCC是如何实现的?

文章目录 简介事务版本号行记录的隐藏列Undo LogRead View的工作流程总结参考文献 简介 在不同的DBMS里&#xff0c;MVCC的实现机制是不同的。本节我们会以InnoDB举例&#xff0c;讲解InnoDB里MVCC的实现机制。 我们需要掌握这么几个概念&#xff1a; 事务版本号行记录的隐藏…

unittest自动化测试断言方法的介绍

断言如同在测试用例上&#xff0c;类似于预期结果与实际结果是否一致&#xff0c;如果一致则表示测试通过&#xff0c;Assert断言很好的用于测试结果判断上,更灵活的对预期结果和实际结果进行对比&#xff0c;下面简单的介绍一下unittest的Assert断言 unittest中基础的assert断…