当前位置: 首页 > news >正文

awk命令

一.介绍

        awk是专门为文本处理设计的编程语言,是一门数据驱动的编程语言。与sed类似,都是以数据驱动的行处理软件,主要用于数据扫描,过滤和汇总。数据可以来自于标准输入,管道或者文件。

二.语法

        awk是一种处理文本文件的编程语言,文件的每数据都被称为记录。默认以空格或者制表符为分隔符,每条记录分成了若干字段(列)。awk每次从文件中取出一条记录。

        格式:

awk [选项] '条件{动作}  条件{动作} ... ... ' 文件名

三.变量

        awk语法由一系列条件和动作组成,在花括号内可以有多个动作,多个动作之间用分号分隔。在多个条件和动作之间可以有多个空格。

        如果没有指定条件则匹配所有数据,如果没有指定动作,则默认为print打印动作。

        3.1 常用内置变量:

  • FILENAME:当前输入文档名称。
  • FNR:当前输入文档的当前行号,尤其是在有多个输入文档时有用。
  • NR:输入数据流的当前行号。
  • $0:当前行的全部内容。
  • $n:当前行第n个字段的内容。(n >= 1)
  • NF:当前记录(行)的字段(列)个数。
  • FS:字段分隔符,默认为空格或者Tab制表符。
  • OFS:输出字段的分隔符,默认为空格。
  • ORS:输出记录分隔符,默认为换行符\n。
  • RS:输入记录分隔符,默认为换行符\n。

         同样时输出行号,NR是将所有文件的数据视作一个数据流,而FNR是将多个文件的数据s视为独立的若干个数据流,遇到新文件时行号从1开始递增。

        3.2 自定义变量

         3.3 调用系统变量

         3.4 自定义分隔符

        awk默认使用空格,换行符,制表符作为分隔符,可以使用'-F'自定义分隔符。

         3.5 内置变量RS,OFS,ORS

  • RS

        内置变量RS保存的是输入数据的行分隔符,默认为'\n',可以指定其他符号作为分隔符。

  •  OFS

        保存输出列分隔符(列分隔符),默认为空格。输出后每一列的分隔符。输出以设置的OFS作为分隔符。

  •  ORS

        保存输出行的分隔符。默认是'\n'

         3.6 print指令

        可以输出常量与变量,如果是字符串常量需要用双引号括起来,数字常量可以直接打印。

         3.7 条件匹配

        awk支持使用正则进行模糊匹配,也支持字符串和数字的精确匹配,也支持逻辑与和逻辑或。

        使用: 

         3.8 BEGIN和END

        BEGIN导致动作指令仅在读取任何数据记录前执行一次,END导致动作指令仅在读取完所有数据记录后执行一次。

        BEGIN可以进行数据初始化,END可以进行数据汇总。

         3.9 数值计算

         awk中的变量不需要定义就可以直接使用,未定义的字符为空,未定义数值,值为0。

         3.10 循环计数

        遇到符合条件的记录,进行动作。

 四.条件判断语句

        if后面如果只跟一个动作指令,则花括号{}可以省略,如果if后面的指令为多条则需要使用花括号{}括起来,多个指令使用分号分隔。

        4.1 单分支语句

         语法:

if(判断条件){动作指令;... ...}

         4.2 双分支语句

        语法:

if(判断条件){动作指令;... ...}else{动作指令;... ...}

统计系统用户个数和普通用户个数

        4.3 多分支语句

        语法:

if(条件1){动作指令;... ...}else if(条件2){动作指令;... ...}else{动作指令;... ...}

 五.数组与循环

         5.1 循环

        语法:

for(变量 in 数值名){动作指令}

         遍历数组:

        变量是索引,数组[变量]是值。

         成员关系判断:

         5.2 for循环

        语法:

for(表达式1;表达式2;表达式3){动作指令;... ...}

        统计/etc/passwd中root出现次数。里面包含两层循环。第一层隐藏循环,awk遍历每一记录(行),显示循环遍历每一行的每一列。 

         5.3 while循环

        语法:

while(条件){动作指令;... ...}

        示例:

         5.3 循环中断语句

        与shell一样,awk提供了break,continue和exit语句,作用相同。

详细: awk命令详解_运维@小兵的博客-CSDN博客_awk

相关文章:

awk命令

一.介绍 awk是专门为文本处理设计的编程语言,是一门数据驱动的编程语言。与sed类似,都是以数据驱动的行处理软件,主要用于数据扫描,过滤和汇总。数据可以来自于标准输入,管道或者文件。 二.语法 awk是一种处理文本文件…...

LocalDateTime获取时间的年、月、日、时、分、秒、纳秒

如何把String/Date转成LocalDateTime参考String、Date与LocalDate、LocalTime、LocalDateTime之间互转 String、Date、LocalDateTime、Calendar与时间戳之间互相转化参考String、Date、LocalDateTime、Calendar与时间戳之间互相转化 方法介绍 getYear() 获取日期的年 getMon…...

MoveIT Rviz和Gazebo联合仿真

文章目录环境安装概述ros_control框架ros_control数据流文件配置附加工具故障问题解决参考接前两篇:ROS MoveIT1(Noetic)安装总结 Solidworks导出为URDF用于MoveIT总结(带prismatic) MoveIT1 Assistant 总结 环境 Ubu…...

ESP32S2(12K)-DS18B20数码管显示温度

一、物料清单: NODEMCU-32-S2 (ESP32-12K)四段数码管(共阴)DS18B20(VCC/DQ/GND)Arduino-IDE 2.0.3二、实现方法及效果图: 2.1 引用库 // #include <OneWire.h> //可以不引入,因为DallasTemperature.h中已经引入了OneWire.h #include <DallasTemperature.h>#…...

linux栈溢出定位

一、编译选项定位堆栈溢出 来源&#xff1a;堆栈溢出检测机制 - SkrSky - 博客园 1、栈溢出可能打印 unhandled level 1 translation fault (11) at 0x7f8d0347, esr 0x92000005 2、栈溢出保护机制 gcc提供了栈保护机制stack-protector&#xff08;编译选项-fstack-protec…...

CSS基础:选择器和声明样式

CSS概念 CSS&#xff08;Cascading Style Sheets&#xff09;层叠样式表&#xff0c;又叫级联样式表&#xff0c;简称样式表 CSS用于HTML文档中元素样式的定义 使用css让网页具有美观一致的页面 语法 CSS 规则由两个主要的部分构成&#xff1a;选择器和声明样式 选择器通常…...

VS中安装gismo库

文章目录前言一、下载安装paraview直接下载压缩包安装就可以了解压后按步骤安装即可二、gismo库的安装gismo库网址第一种方法&#xff1a;第二种方法第三种方法&#xff1a;用Cmake软件直接安装首先下载cmake软件[网址](https://cmake.org/download/)安装gismo库三、gismo库的使…...

元学习方法解决CDFSL以及两篇SOTA论文讲解

来源&#xff1a;投稿 作者&#xff1a;橡皮 编辑&#xff1a;学姐 带你学习跨域小样本系列1-简介篇 跨域小样本系列2-常用数据集与任务设定详解 跨域小样本系列3&#xff1a;元学习方法解决CDFSL以及两篇SOTA论文讲解&#xff08;本篇&#xff09; 跨域小样本系列4&#xf…...

大数据之------------数据中台

一、什么是数据中台 **数据中台是指通过数据技术&#xff0c;对海量数据进行采集、计算、存储、加工&#xff0c;同时统一标准和口径。**数据中台的目标是让数据持续用起来&#xff0c;通过数据中台提供的工具、方法和运行机制&#xff0c;把数据变为一种服务能力&#xff0c;…...

Python 中 字符串是什么?

字符串是 Python 中最常用的数据类型。我们可以使用引号 ( ’ 或 " ) 来创建字符串。 创建字符串很简单&#xff0c;只要为变量分配一个值即可。例如&#xff1a; var1 ‘Hello World!’ var2 “Python Runoob” Python 访问字符串中的值 Python 不支持单字符类型&…...

OJ刷题Day1 · 一维数组的动态和 · 将数字变成 0 的操作次数 · 最富有的客户资产总量 · Fizz Buzz · 链表的中间结点 · 赎金信

一、一维数组的动态和二、将数字变成 0 的操作次数三、最富有的客户资产总量四、Fizz Buzz五、链表的中间结点六、赎金信一、一维数组的动态和 给你一个数组 nums 。数组「动态和」的计算公式为&#xff1a;runningSum[i] sum(nums[0]…nums[i]) 。 请返回 nums 的动态和。 示…...

【数据结构】栈——必做题

逆波兰表达式后缀表达式的出现是为了方便计算机处理&#xff0c;它的运算符是按照一定的顺序出现&#xff0c;所以求值过程中并不需要使用括号来指定运算顺序&#xff0c;也不需要考虑运算符号&#xff08;比如加减乘除&#xff09;的优先级。先介绍中简单的人工转化方法&#…...

LearnOpenGL 笔记 - 入门 04 你好,三角形

系列文章目录 LearnOpenGL 笔记 - 入门 01 OpenGLLearnOpenGL 笔记 - 入门 02 创建窗口LearnOpenGL 笔记 - 入门 03 你好&#xff0c;窗口 文章目录系列文章目录前言你好&#xff0c;三角形顶点输入顶点着色器&#xff08;Vertex Shader&#xff09;编译着色器片段着色器&…...

keepalived+mysql高可用

一.设置mysql同步信息两节点安装msyql略#配置节点11.配置权限允许远程访问mysql -u root -p grant all on *.* to root% identified by Root1212# with grant option; flush privileges;2.修改my.cnf#作为主节点配置(节点1)#作为主节点配置 server-id 1 …...

JAVA工具篇--1 Idea中 Gradle的使用

前言&#xff1a; 既然我们已经使用Maven 来完成对项目的构建&#xff0c;为什么还要使用Gradle 进行项目的构建&#xff1b;gradle和maven都可以作为java程序的构建工具&#xff0c;但两者还是有很大的不同之处的&#xff1a;1.可扩展性&#xff0c;gradle比较灵活&#xff0c…...

弄懂自定义 Hooks 不难,改变开发认知有点不习惯

前言 我之前总结逻辑重用的时候&#xff0c;就一直在思考一个问题。 对于逻辑复用&#xff0c;render props 和 高阶组件都可以实现&#xff0c;同样官方说 Hooks 也可以实现&#xff0c;且还是在不增加额外的组件的情况下。 但是我在项目代码中&#xff0c;没有找到自定义 …...

Java面向对象基础

文章目录面向对象类注意事项内存机制构造器this关键字封装javabean格式成员变量和局部变量区别static静态关键字使用成员方法使用场景内存机制注意事项static应用&#xff1a;工具类static应用&#xff1a;代码块静态代码块实例代码块&#xff08;用的比较少&#xff09;static…...

基于python下selenium库实现交互式图片保存操作(批量保存浏览器中的图片)

Selenium是最广泛使用的开源Web UI&#xff08;用户界面&#xff09;自动化测试套件之一&#xff0c;可以通过编程与浏览量的交互式操作对网页进行自动化控制。基于这种操作进行数据保存操作&#xff0c;尤其是在图像数据的批量保存上占据优势。本博文基于selenium 与jupyterla…...

一:Datart的下载、本地运行

前言&#xff1a;本文只是个人在使用datart的一个记录&#xff0c;仅供参考。如果有不一样的地方&#xff0c;欢迎评论或私信进行交流。datart 是新一代数据可视化开放平台&#xff0c;支持各类企业数据可视化场景需求&#xff0c;如创建和使用报表、仪表板和大屏&#xff0c;进…...

Docker-compose

一.Docker-compose概述Docker-Compose项目是Docker官方的开源项目&#xff0c;负责实现对Docker容器集群的快速编排。Docker-Compose将所管理的容器分为三层&#xff0c;分别是 工程&#xff08;project&#xff09;&#xff0c;服务&#xff08;service&#xff09;以及容器&a…...

DeepSeek服务网格选型决策树(Istio vs. eBPF轻量方案深度对比:延迟压降42%、资源开销降低68%实测数据)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;DeepSeek微服务架构建议 在构建面向大语言模型推理与训练任务的微服务系统时&#xff0c;DeepSeek系列模型对计算密集型服务、高吞吐API网关及弹性资源编排提出了明确要求。推荐采用分层解耦、异步协同…...

av1编码--比特流结构

目录 2.2.1 序列头信息 2.2.2 帧头信息 2.2.4 时间分隔符信息 2.2.5 切片组信息 AV1 比特流是由一系列名为开放比特流单元&#xff08;OBU&#xff09;的数据单元组成。每个 OBU 由一个可变长度的字节串&#xff08;Byte String&#xff09;组成。具体来讲&#xff0c;OBU 包…...

别再手动复制粘贴了!ChatGPT原生PPT导出功能已上线(仅限Enterprise Tier),3大未公开API接口实测报告

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;ChatGPT原生PPT导出功能的架构演进与企业级定位 ChatGPT原生PPT导出功能并非简单集成第三方渲染库&#xff0c;而是OpenAI在模型服务层、内容生成中间件与文档编排引擎三者深度协同下构建的端到端能力。…...

Windows Defender彻底移除指南:3步释放30%系统性能的终极方案

Windows Defender彻底移除指南&#xff1a;3步释放30%系统性能的终极方案 【免费下载链接】windows-defender-remover A tool which is uses to remove Windows Defender in Windows 8.x, Windows 10 (every version) and Windows 11. 项目地址: https://gitcode.com/gh_mirr…...

MySQL 性能监控实战:从零搭建 Prometheus + Grafana 监控告警体系(附排查 SOP)

&#x1f4cc; 今日关键词&#xff1a;性能监控、PMM、Prometheus、Grafana、慢查询、告警、指标体系 大家好&#xff0c;我是数据库小学妹 &#x1f44b; 前面我们学习了锁机制、MVCC、慢查询诊断这些"事后分析"的技术。但你知道“数据库目前处于什么状态&#xff1…...

Layerdivider:AI智能分层工具完整指南 - 快速将单张图片转为分层PSD

Layerdivider&#xff1a;AI智能分层工具完整指南 - 快速将单张图片转为分层PSD 【免费下载链接】layerdivider A tool to divide a single illustration into a layered structure. 项目地址: https://gitcode.com/gh_mirrors/la/layerdivider Layerdivider是一个革命性…...

终极AI音乐创作工具:5分钟生成专业级歌曲翻唱

终极AI音乐创作工具&#xff1a;5分钟生成专业级歌曲翻唱 【免费下载链接】AICoverGen A WebUI to create song covers with any RVC v2 trained AI voice from YouTube videos or audio files. 项目地址: https://gitcode.com/gh_mirrors/ai/AICoverGen 你是否曾经梦想…...

甲骨文免费服务器到手后,用Xshell连接不上?这份SSH密钥配置避坑指南请收好

甲骨文云SSH连接全攻略&#xff1a;从密钥解析到Xshell实战配置 密钥管理的核心逻辑与常见误区 初次接触甲骨文云免费实例的用户&#xff0c;90%的SSH连接问题都源于密钥处理不当。与常规密码登录不同&#xff0c;甲骨文云强制采用密钥对认证机制&#xff0c;这种设计虽然提升了…...

在 Clean Core 约束下扩展 SAP S/4HANA 标准 OData API

我们正在做的事情很具体,S/4HANA 后端已经能够发布产品主数据相关的 Enterprise Event,事件经过 Integration Suite、Event Mesh、Advanced Event Mesh,再进入 Kafka Event Broker,消费系统按照 product type 订阅不同的 material event。链路跑通以后,业务方很快发现一个…...

智能家居语音交互进阶:从离线识别到场景化意图推理的本地化实现

1. 项目概述&#xff1a;从“听见”到“听懂”的智能家居进化 “小爱同学&#xff0c;打开客厅灯。” “天猫精灵&#xff0c;空调调到26度。” 这类语音交互如今已司空见惯。但你是否遇到过这样的场景&#xff1a;对着音箱说“我有点冷”&#xff0c;它却回答“对不起&#xf…...