文本三剑客——awk

news2024/11/27 8:23:24

文本编辑器awk

  • 一、 awk工作原理
    • 1.命令格式
    • 2.awk常见的内建变量(可直接用)如下所示
  • 二、awk的基础用法
    • 1.输出文件中的某一列
    • 2.根据特定条件筛选数据
    • 3.按照分隔符进行切割
    • 4.在匹配到特定字符串时执行操作
    • 5.BEGIN打印模式
    • 6.awk的分隔符用法
  • 三、示例演示
    • 1.获取本机上一次开机时间
    • 2.检测本机cpu 15分钟内的平均负载
    • 3.获取本机IP地址
    • 4.ssh远程登录

一、 awk工作原理

工作原理
逐行读取文本,默认以空格或tab键为分隔符进行分隔,将分隔所得的各个字段保存到内建变量中,并按模式或者条件执行编辑命令
sed命令常用于一整行的处理,而awk比较倾向于将一行分成多个“字段”然后再进行处理。awk信息的读入也是逐行读取的,执行结果可以通过print的功能将字段数据打印显示。在使用awk命令的过程中,可以使用逻辑操作符“&&”表示“与”、“||”表示“或”、“!”表示“非”;还可以进行简单的数学运算,如+、-、*、/、%、^分别表示加、减、乘、除、取余和乘方。

1.命令格式

awk 选项 ‘模式或条件 { 操作 }’ 文件1 文件2 ...... 
awk -f   脚本文件  文件1  文件2 ......

2.awk常见的内建变量(可直接用)如下所示

FS:列分隔符。指定每行文本的字段分隔符,默认为空格或制表符。与“-F”作用相同
NF:当前处理的行的字段个数
NR:当前处理的行的行号(序数)
$0:当前处理的行的整行内容
$n:当前处理行的第n个文件名
FILENAME:被处理的文件名。
RS:行分隔符。awk从文件上读取资料时,将根据RS的定义把资料切割成许多条记录,而awk一次仅读入一条记录,而进行处理。预设值是’\n‘


## 3.按行输出文本,一些示例:

```cpp
awk '(print)'  文件名               #输出所有内容
awk '(print $0)'  文件名            #输出所有内容
 
awk 'NR==1,NR==3{print}' 文件名      #输出第1~3行内容
awk '(NR>=1)&&(NR<=3){print}' 文件名 #输出第1~3行内容

awk 'NR==1||NR==3{print}'  文件名     #输出第1行、第3行内容

awk '(NR%2)==1{print}'  文件名        #输出所有奇数行的内容
awk '(NR%2)==0{print}'  文件名        #输出所有偶数行的内容

awk '/^root/{print}' /etc/passwd     #输出以root开头的行

awk '/nologin$/(print)' /etc/passwd  #输出以nologin结尾的行

awk 'BEGIN{x=0};/\bin\/bash$/{x++};END{print x}' /etc/passwd   #统计以/bin/bash结尾的行数,等同于 grep -c "/bin/bash$"

BEGIN模式表示,在处理指定的文本之前,需要先执行BEGIN模式中指定的动作;awk在处理指定的文本,之后再执行END模式中指定的动作,END{ }语句块中,往往会放入打印结果等语句

二、awk的基础用法

1.输出文件中的某一列

格式:awk ‘{print $n}’ 文件

在这里插入图片描述

2.根据特定条件筛选数据

格式:awk ‘条件 {print}’ 文件

在这里插入图片描述
在这里插入图片描述

3.按照分隔符进行切割

在这里插入图片描述

4.在匹配到特定字符串时执行操作

格式:awk ‘/匹配条件/ {print}’ 文件

在这里插入图片描述

5.BEGIN打印模式

语法格式:awk ‘BEGIN{…};{…};END{…}’ 文件

在这里插入图片描述

6.awk的分隔符用法

在这里插入图片描述

三、示例演示

1.获取本机上一次开机时间

date -d “$(awk -F “.” ‘{print $1}’ /proc/uptime) second ago” +“%F %H:%M:%S”
在这里插入图片描述

2.检测本机cpu 15分钟内的平均负载

uptime | awk ‘{print $NF}’
在这里插入图片描述

3.获取本机IP地址

ifconfig ens33|awk ‘/inet /{print $2}’
在这里插入图片描述

4.ssh远程登录

在这里插入图片描述

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

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

相关文章

挖掘数百篇AR/VR专利,苹果XR全方位探索

近期大家也看了很多苹果XR的消息&#xff0c;与其看各种爆料、不如从专利入手来看看苹果XR头显可能会有哪些不同的玩法。于是&#xff0c;我们就从苹果近年来有关AR/VR的数百篇专利中&#xff0c;选出可能会直接决定和影响XR产品体验的部分汇总出来。当然&#xff0c;这些专利不…

智警杯赛前学习2.1--sql概述

绝大多数分析岗位&#xff0c;需要sql功能 sql是架起通往其它工具的桥梁 DDL数据定义语言 DML数据操纵语言&#xff0c;主要包括&#xff1a;insert&#xff0c;delete&#xff0c;update DQL数据查询语言 DCL数据库控制语言 关系型数据库&#xff0c;类似excel的二维表 …

windows中同时安装两个不同版本的mysql

文章目录 前言解压mysql新建所需目录及文件配置my.ini文件安装配置mysql8.0.25dll丢失错误解决问题 修改注册表启动mysql登录后修改密码总结 前言 有的时候&#xff0c;你是用的mysql版本和公司使用的mysql版本不一致&#xff0c;这样就会导致你不得不在你的电脑上安装两个版本…

Ansible基础四——变量、机密、事实

文章目录 一、变量二、机密2.1 创建加密文件2.2 查看加密文件2.3 编辑加密文件内容2.4 加密现有文件2.5 解密文件2.6 更改加密密码 三、事实3.1 收集展示事实3.2 展示某个结果3.3 新旧事实命令3.4 关闭事实3.5 魔法变量 一、变量 常设置的变量&#xff1a; 要创建的用户要安装的…

设计模式之~中介者模式

简述&#xff1a; 中介者模式又叫做调停者模式。其实就是中间人或者调停者的意思。 中介者模式&#xff08;Mediator&#xff09;&#xff0c;用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互调用&#xff0c;从而式其耦合松散&#xff0c;而且可以独立…

hive实战案例讲解

系列文章目录 hive进阶——在centos7里面配置mysql&#xff0c;将原来hive的客户端扩展 centos集群上安装hive客户端的操作步骤以及hive介绍 文章目录 Hive 实战 1、需求描述 2、数据结构 1&#xff09;视频表 2&#xff09;用户表 3、准备工作 3.1、准备表 3.2、创…

基于ATMEGA16单片机的空调控制器

点击链接获取Keil源码与Project Backups仿真图&#xff1a; https://download.csdn.net/download/qq_64505944/87853101 源码获取 主要内容&#xff1a; 本系统采用AVR单片机实现汽车空调的自动控制&#xff08;双位控制&#xff09;&#xff0c;具有电路结构简单、分立元件…

【大数据基石】Hadoop环境搭建

文章目录 前言配置hosts关闭防火墙配置SSH免密下载Hadoop解压Hadoop到指定目录添加环境变量修改Hadoop配置文件core-site.xmlhdfs-site.xmlyarn-site.xmlmapred-site.xmlworkershadoop-env.sh 其他2台服务器也这样配置初始化NameNode启动hdfs启动Yarn启动历史记录服务器 ✨这里…

[中间件漏洞]tomcat漏洞复现

目录 Tomcat 远程代码执行漏洞&#xff08;CVE-2017-12615&#xff09; 漏洞描述 漏洞原理 漏洞复现 漏洞修复 tomcat弱口令&war远程部署 漏洞原理 漏洞复现 漏洞修复 Apache Tomcat文件包含漏洞(CVE-2020-1938&#xff09; 漏洞复现 漏洞修复 Tomcat 远程代码执行漏洞…

ffmpeg之AVFormatContext详细解释

AVFormatContext 作用 AVFormatContext主要起到了管理和存储媒体文件相关信息的作用。它是一个比较重要的结构体&#xff0c;在FFmpeg中用于表示媒体文件的格式上下文&#xff0c;其中包含了已经打开的媒体文件的详细信息&#xff0c;包括媒体文件的格式、媒体流的信息、各个媒…

1 行代码开启「密钥检测」,给敏感数据加上防护锁

&#x1f4a1; 近日&#xff0c;在「DevSecOps 软件安全开发实践」课程上&#xff0c;极狐(GitLab) 高级专业服务交付工程师韩飞、极狐(GitLab) 前端工程师任治桐&#xff0c;分享了密钥检测的背景、应用及处理&#xff0c;并演示了极狐GitLab 密钥检测功能&#xff0c;快用 1 …

视频文件损坏无需再苦恼!快速修复方法分享!

如今录制视频或者从互联网下载视频都很简单&#xff0c;这些视频可以从笔记本电脑、电视甚至智能手机上用于观看或上传到自媒体平台/社交平台。 但视频有时会出现损坏的问题&#xff0c;导致视频无法正常播放&#xff0c;出现这种情况怎么办&#xff1f; 导致视频文件损坏的原…

家居购项目 1.分页导航 2.购物车 3.订单生成

文章目录 &#x1f400;Java后端经典三层架构&#x1f407;MVC模型&#x1f407;开发环境搭建&#x1f407;会员注册&#x1f333;前端验证用户注册信息&#x1f333;思路分析&#x1f349;创建表&#x1f349;创建实体类&#x1f349;DAO&#x1f34c;MemberDAOImpl &#x1f…

怎么编辑pdf里面的文字?好用工具分享

PDF文件是一种非常常见的电子文档格式&#xff0c;它具有通用性、易分享、易打印的特点&#xff0c;因此广泛应用于各个领域中。然而&#xff0c;PDF文件通常是只读的&#xff0c;如果需要修改其中的文字&#xff0c;就需要使用专业的PDF编辑软件或者在线编辑工具。 市场上有很…

cuda编程学习——原子函数(十)

前言 参考资料&#xff1a; 高升博客 《CUDA C编程权威指南》 以及 CUDA官方文档 CUDA编程&#xff1a;基础与实践 樊哲勇 文章所有代码可在我的GitHub获得&#xff0c;后续会慢慢更新 文章、讲解视频同步更新公众《AI知识物语》&#xff0c;B站&#xff1a;出门吃三碗饭 …

文心一言 VS 讯飞星火 VS chatgpt (28)-- 算法导论5.1 3题

三、假设你希望以1/2的概率输出0与 1。你可以自由使用一个输出0或1的过程 BIASED-RANDOM。它以某概率 p 输出1&#xff0c;概率 1-p 输出0&#xff0c;其中 0<p<1 &#xff0c;但是 p 的值未知。请给出一个利用 BIASED-RANDOM 作为子程序的算法&#xff0c;返回一个无偏的…

pwm led

PWM Dimming (脉冲宽度调制) 调光——是一种利用简单的数字脉冲&#xff0c;反复开关灯光LED驱动器的调光技术。通过程序控制输出宽、窄不同的数字式脉冲&#xff0c;即可简单地实现改变输出电流&#xff08;电压&#xff09;&#xff0c;从而调节LED灯的亮度。 当PWM不是满占空…

真无线蓝牙耳机哪个牌子好用?六款真无线蓝牙耳机品牌推荐

无论我们是看视频还是在路上听音乐&#xff0c;真无线蓝牙耳机可以丰富我们的一天。然而&#xff0c;问题是有太多的选择&#xff0c;许多人不知道哪一款的性价比高音质好&#xff0c;下面小编特意整理了一期性价比高音质好的蓝牙耳机。 第一款&#xff1a;南卡小音舱lite2 蓝…

运维小白必学篇之基础篇第一集:Linux相关命令实验

Linux相关命令实验 实验者&#xff1a;胡 阳 命令提示符 【rootlocalhost ~】# 【当前登录系统的用户主机名 当前工作目录】提示符 &#xff08;# 表示 管理员&#xff09; &#xff08;&#xff04; 表示 普通用户&#xff09; 基本格式&#xff1a;命令 【选项】 【…

一文带你学习前端 - 自动化测试

theme: devui-blue 前端自动化测试 1. 自动化测试基本概念介绍 前言 一般我们实现功能&#xff0c;基本都是两部分写代码&#xff0c;调试/测试。写代码和测试的时间&#xff0c;基本都是55分。如果是测试逻辑&#xff0c;可能要打一下log&#xff0c;或者打断点去调试。测…