网络安全 Day13-Linux三剑客awk知识
Linux三剑客awk知识
- 1. awk 介绍
- 2. awk 语法
- 3. 练习
1. awk 介绍
- awk 是一门语言, 也是一个命令,
- Linux 有三剑客命令: grep/sed/awk
- 三剑客的特长
- grep 过滤内容
- sed 取行
- awk 取列
2. awk 语法
- 取列
- 取第一列文件($1):
awk '{print $1} 文件' - 指定分隔符为文件:
awk -F "指定的分隔符" 文件 - 指定多分隔符:
awk -F "[/@ #]+" '{print $1,$2}' 文件
- 取第一列文件($1):
- 取行:
awk NR==2 oldboy.txt - 过滤:
awk '/过滤的内容/' 文件
3. 练习
-
准备:创建一个文件, 并在只其中追加内容
[root@oldboyedu ~] echo "oldboy oldgirl" >>oldboy.txt [root@oldboyedu ~] echo "oldboy oldgirl" >>oldboy.txt [root@oldboyedu ~] cat oldboy.txt oldboy oldgirl oldboy oldgirl -
普通取列
- 取第一列
[root@oldboyedu ~] awk '{print $1}' oldboy.txt oldboy oldboy - 取整行(搭配着grep可能更好用)
[root@oldboyedu ~]# awk '{print $0}' oldboy.txt oldboy oldgirl oldboy oldgirl
- 取第一列
-
指定分隔符取列(-F)
- 取/etc/passwd的第1列:
awk -F ":" '{print $1}' /etc/passwd - 取/etc/passwd的第2列:
awk -F ":" '{print $2}' /etc/passwd - 取/etc/passwd的尾列:
awk -F ":" '{print $NF}' /etc/passwd - 取/etc/passwd的倒数第2列:
awk -F ":" '{print $(NF-1)}' /etc/passwd
- 取/etc/passwd的第1列:
-
同时输出多列
- 取/etc/passwd的第1列和第2列:
awk -F ":" '{print $1,$2}' /etc/passwd - 取/etc/passwd的第1列、第3列和最后一列:
awk -F ":" '{print $1,$3,$NF}' /etc/passwd
- 取/etc/passwd的第1列和第2列:
-
综合练习
- 从ip a或ifconfig结果中取出Ip地址
p a|grep '10.0.0'|awk '{print $2}'|awk -F/ '{print $1}'或者ifconfig eth0|grep '10.0.0'|awk '{print $2}' - 从ip a结果中取出Ip地址:
ip a|awk -F "[ /]+" 'NR==9{print $3}' - 取出stat /etc/hosts中的0644:
stat /etc/hosts|awk -F "[(/]" 'NR==4{print $2}'
- 从ip a或ifconfig结果中取出Ip地址
-
准备
[root@oldboyedu ~] seq 5 >oldboy.txt [root@oldboyedu ~] cat oldboy.txt 1 2 3 4 5 -
取行练习
- 取第二行:
awk NR==2 oldboy.txt - 取第2-4行:
awk NR==2,NR==4 oldboy.txt或awk 'NR>1&&NR<5' oldboy.txt或awk 'NR>=2&&NR<=4' oldboy.txt
- 取第二行:
相关文章:
网络安全 Day13-Linux三剑客awk知识
Linux三剑客awk知识 1. awk 介绍2. awk 语法3. 练习 1. awk 介绍 awk 是一门语言, 也是一个命令,Linux 有三剑客命令: grep/sed/awk三剑客的特长 grep 过滤内容sed 取行awk 取列 2. awk 语法 取列 取第一列文件($1): awk {print $1} 文件指定分隔符为文件: awk -F "指…...
java讲解Spring Boot配置文件级别 相互覆盖关系 解决一方不愿意给数据库密码 一方不愿意给源码时 数据库配置问题
前面 我们讲过Spring Boot 修改临时变量的方式 但另一个场景 就是 我们 在本地开发环境 用的是一个配置 但如果项目经理上线 他想改这些配置 怎么弄呢 特别是数据库之类的配置 很多线上是不太一样的 那么 我们先看一个比较基本的方法 在配置文件的同目录下创建一个目录 叫 con…...
点击表格行高亮
css中三元表达式 :class"[activeIndex index ? color : , item]"点击行高亮 <div click"actvied(index)" :class"[activeIndex index ? color : , item]"v-for"(item, index) in tableData" :key"index">{{ item…...
基于粒子群优化算法的配电网光伏储能双层优化配置模型[IEEE33节点](选址定容)(Matlab代码实现)
目录 💥1 概述 📚2 运行结果 🎉3 参考文献 🌈4 Matlab代码、数据、讲解 💥1 概述 由于能源的日益匮乏,电力需求的不断增长等,配电网中分布式能源渗透率不断提高,且逐渐向主动配电网方…...
零代码爬虫平台SpiderFlow的安装
什么是 Spider Flow ? Spider Flow 是一个高度灵活可配置的爬虫平台,用户无需编写代码,以流程图的方式,即可实现爬虫。该工具支持多数据源、自动保存至数据库、任务监控、抓取 JS 动态渲染页面、插件扩展(OCR 识别、邮…...
Java 与其他编程语言:比较分析
Java 擅长可移植性和可靠性,Python 擅长通用性和简单性,JavaScript 擅长 Web 开发,C 擅长性能,Go 擅长效率。 在广阔的软件开发世界中,选择正确的编程语言对于任何项目的成功都至关重要。Java 是一种以其多功能性和可移…...
Linux性能分析工具介绍(二)--内存、进程、磁盘、IO分析
目录 一、引言 二、Linux性能分析工具介绍 ------>2.1、进程 ------>2.2、内存 ------>2.3、磁盘 ------>2.4、IO 一、引言 本章从内存、IO、进程的角度,分析linux系统的性能 二、Linux性能分析工具介绍 2.1、进程 2.1.1、top top命令可以动态查看进程…...
海外热门地区/国家常见主体证件示例
海外热门地区/国家常见主体证件示例(本页面内容较多,你可以通过CtrlF搜索) Overseas Popular Areas / Countries Examples of Common certificates (This page has more content, you can search by CtrlF) 中国香港…...
【阵列信号处理】空间匹配滤波器、锥形/非锥形最佳波束成形器、样本矩阵反演 (SMI) 研究(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
使用MPU6050计算方向盘角度
我给你们作了榜样、叫你们照着我向你们所作的去作。 ——【约翰福音13:15】 1.前言 前段时间接到一个项目需求:使用现有的陀螺仪MPU6050实现计算当前车辆的方向盘角度。 2.需求分析 MPU6050可获取三轴角速度和三轴加速度,并通过算法可以获得横滚角、…...
区块链实验室(13) - 在PBFT中节点的度与其流量的特征
前面若干实验说明了PBFT的耗时、流量与度的特征,见 区块链实验室(10) - 实例说明PBFT的共识过程, 区块链实验室(11) - PBFT耗时与流量特征, 区块链实验室(12) - 网络拓扑对PBFT共识流量的影响 同样的实验方案,在100个节点构成的无标度网络中完成100次交…...
C++——文件操作
一、文本文件 C中输入输出是通过流对象进行操作,对于文件来说写文件就是将内容从程序输出到文件,需要用到写文件流ofstream;而读文件就是将内容从文件输入到程序,需要用到读文件流ifstream;这两个文件流类都包含在头文…...
channel通道笔记
channel通道笔记 介绍 语法 1.一般使用make创建channel(常用) c : make(chan datatype),datatype是数据类型 2.直接显示声明,创建的值为空,一般没有太大意义 var c chan datatype 三种定义写法: 既可以收数据又可以发数据:chan datatype只可以收数据:chan <- datatype只可…...
无涯教程-Lua - 面向对象
面向对象编程(OOP)是现代编程时代中使用最广泛的编程技术之一。 OOP的特征 类(Class) - 类是用于创建对象的可扩展模板。 对象(Objects) - 它是类的实例,并为其分配了单独的内存空间。 继承(Inheritance) - 这是一个概…...
Java中的IOUtils是什么?
Java中的IOUtils是一个工具类,用于简化文件和流的操作。它提供了一些常用的方法,如复制文件、读取文件、写入文件等。 下面是一个简单的示例,演示如何使用IOUtils来复制文件: import org.apache.commons.io.FileUtils; import j…...
电源板(220V转3.3V)调试问题总
目录 现象: 问题可能的影响: 排查过程: 1.测试EC3,C2都在6V左右, 2.怀疑变压器的问题。 2.怀疑原边反馈控制芯片的问题。 3.怀疑后级电路的问题。 现象: 电源板输出3.28V输出正常。 但是测试前级电压…...
【webpack】一些零碎的知识点记录:eslint配置、source-map配置、devServer配置
文章目录 前言eslint安装配置设置规则 devtool设置js.map文件使用模式解释文件说明建议方案 devServer安装配置 前言 有些知识点不知道咋归类,就先暂时放在同一个文章里了。这里只记录配置方式,配置的东西是什么就不过多解释了,因为一般需要…...
VUE之JWT前后端分离认证,学生管理系统
参考资料: SpringBoot搭建教程 SpringCloud搭建教程 JWT视频教程 JWT官网 Vue视频教程 JWT视频参考资料、VUE视频资料,及前后端demo 特别有参考价值的JWT博客1 特别有参考价值的JWT博客2 cookie、localstorage和sessionStorage的区别1 cookie、localstorage和sessi…...
Go学习第五天
Golang中面向对象类的表示与封装 package mainimport "fmt"// 如果类名首字母大写,表示其他包也能够访问 type Hero struct {// 如果类的属性首字母大写,表示该属性是对外能够访问的,否则的话只能够类的内部访问Name stringAd …...
在vue项目中封装WebSockets请求
在Vue项目中封装WebSocket请求包括以下步骤: 1. 安装WebSocket库:首先,导入WebSocket库,例如vue-native-websocket或socket.io-client。根据项目需求选择适当的库,并根据官方文档进行安装和配置。 2. 创建WebSocket服务…...
微信小程序私域直播的五大替代方案及成本效益分析
1. 微信小程序私域直播现状与挑战 去年6月腾讯突然关闭小程序直播功能申请的消息,让很多依赖微信生态的商家措手不及。我接触过不少做服装、美妆的客户,他们之前靠着小程序直播能轻松做到单场50万的销售额,功能关闭后业绩直接腰斩。现在商家们…...
告别手动点点点:用CANoe CAPL脚本全自动刷写ECU固件(附完整代码框架)
告别手动点点点:用CANoe CAPL脚本全自动刷写ECU固件(附完整代码框架) 在汽车电子测试领域,ECU固件刷写是每个工程师都绕不开的必修课。但当你第100次重复相同的UDS服务序列时,是否也曾在深夜的实验室里怀疑人生&#x…...
【几何之美】莫利定理(Morley‘s Theorem)的视觉化证明与初中数学思维
1. 莫利定理:藏在三角形里的数学奇迹 第一次听说莫利定理时,我正盯着教室墙上的三角板发呆。谁能想到,这个看似普通的几何图形里,竟然藏着如此精妙的规律——把任意三角形的三个内角各分成三等份,靠近每条边的两条三等…...
ChatGPT 并非总是理解 SQL,但这个 Python 工具可以
原文:towardsdatascience.com/say-goodbye-to-sql-headaches-with-this-python-tool-75099f5ff33d https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/f411ec0f210c2545786c1022c49304d5.png Image by 2023852 from Pixabay 如果…...
OpenClaw+Qwen3-14b_int4_awq:电商商品描述自动生成器
OpenClawQwen3-14b_int4_awq:电商商品描述自动生成器 1. 为什么需要自动化商品描述生成 作为一名电商运营人员,我每天都要处理大量商品上架工作。最让我头疼的就是为不同语言市场的同一款产品撰写多版本描述——不仅耗时耗力,还经常出现风格…...
ESP8266控制步进电机
硬件, esp8266,uln2003,28BYJ-48 电机,杜绑线 首先写代码的软件,Arduino IDE,直接要这个文章,我就不手把手写了,不要便携版,我实在是搞这个便携版太烧脑了,弄不明白 h…...
嵌入式差分升级技术解析与实践指南
1. 嵌入式差分升级方案概述在嵌入式设备固件更新领域,差分升级(Delta Update)已经成为解决传统OTA升级痛点的关键技术方案。作为一名长期从事嵌入式开发的工程师,我亲历过多次因固件体积过大导致的升级失败案例,直到采…...
EthernetClientSecure深度指南:ESP32嵌入式TLS安全通信实战
1. EthernetClientSecure 库深度解析:面向嵌入式工程师的 TLS/SSL 安全以太网通信实践指南EthernetClientSecure 是一款专为 Arduino/ESP32 平台设计的轻量级、高可靠性安全以太网客户端库。它并非简单封装,而是通过精密的分层架构,在资源受限…...
STM8 Bootloader开发与固件远程升级实践
1. Bootloader的核心价值与应用场景在嵌入式产品开发中,Bootloader的重要性经常被低估。直到去年参与某工业控制器项目时,我才真正体会到它的价值——当时现场有200台设备需要紧急修复通信协议漏洞,但设备外壳采用防水密封设计,拆…...
Qt框架打造轻量级串口调试助手教程
1. 项目概述作为一名嵌入式开发者,串口通信是我们日常工作中最常用的调试手段之一。市面上的串口调试助手虽然功能丰富,但往往存在各种限制:要么功能过于复杂臃肿,要么缺少某些特定功能。今天,我将分享如何使用Qt框架从…...
