Shell中的awk

一、awk

1.1.awk工作原理

逐行读取文本,默认以空格或tab键为分隔符进行分隔,将分隔所得的各个字段保存到内建变量中,并按模式或者条件执行编辑命令。

awk倾向于将一行分成多个"字段"然后再进行处理。

awk信息的读入也是逐行读取的,执行结果可以通过print的功能将字段数据打印显示。

使用awk命令的过程中,可以使用逻辑操作符"&&"表示"与"、"|"表示"或"、"!"表示"非",还可以进行简单的数学运算,如+、-、*、/、%、^分别表示加、减、乘、除、取余和乘方。

1.2.awk命令格式

  1. awk 选项 '模式或条件 {操作}' 文件1 文件2 ....

  2. awk -f 脚本文件 文件1 文件2

1.3.awk常见的内建变量(可以直接使用) 

内建变量作用
$0当前处理的行的整行内容
NR当前处理的行的行号(序数)
$n当前处理行的第n个字段(第n列)
FS

列分割符。指定每行文本的字段分隔符,默认为空格或制表位。与"-F"作用相同

OFS输出内容的列分隔符
NF

当前处理的行的字段个数      $NF代表最后一个字段

FILENAME被处理的文件名
RS

行分隔符。awk从文件上读取资料时,将根据RS的定义把资料切割成许多条记录, 而awk一次仅读入一条记录进行处理。预设值是'\n '

1.4.NR 处理指定行内容

1.5.使用字符串处理文件内容 

1.6.打印行号 

使用BEGIN输出包含指定字符的行并统计有多少行  

格式:awk 'BEGIN{ ..};{..} ;END{.. .}' 文件 

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

 

先输出查看到的语句 再输出x的值,继续执行操作直到匹配不到相应的语句后执行END语句 打印最后的x值

1.7. $n 当前处理行的第n个字段

  1. $n ~ "字符串" 代表打印出第n个字段中包含某字符的行

  2. $n =="字符串" 代表打印出第n个字段中为某字符串的行

  3. $n != "字符串" 代表打印出第n个字段中不为某字符的串行

 

1.8.FS(-F)列分割符,指定每行文本的字段分隔符 

格式:awk -F 分隔符 '{操作}'

!用法

与if语句或者while或三目运算符等一起使用时需要再嵌套一个大括号{ }

三元运算符:

  1. (条件表达式)?(A表达式或者值):(B表达式或者值)

  2. 条件表达式成立为真时会取:号前面的A的值

  3. 条件表达式不成立为假时会取:号后面的B的值


 

1.9.OFS输出内容的列分隔符

将空格换为“|” 

1.10.NF当前处理的行的字段个数 

打印第一个字段与最后一个字段

 

1.11.RS行分隔符

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

服务器端请求伪造漏洞

服务器端请求伪造(Server-Side Request Forger ,SSRF)漏洞是近年来比较常 见的一种漏洞。SSRF漏洞本身并不危险,与SQL注入或XSS相比较危害不大,但 近年来有人通过将SSRF结合未授权访问漏洞进行渗透,危害就非…

安装并开始设置 Windows 终端(命令提示符或Windows PowerShell或Azure Cloud Shell)

安装 安装 若要试用最新的预览功能,可能还需要安装 Windows 终端预览。 ‼️备注 如果你无法访问 Microsoft Store,GitHub 发布页上发布有内部版本。 如果从 GitHub 安装,Windows 终端将不会自动更新为新版本。 有关使用包管理器&#xff…

C# .Net Framework webapi 全局日志

1.创建一个类名字叫做CustomActionFilter.cs /// <summary>/// /// </summary>public class CustomActionFilter : System.Web.Http.Filters.ActionFilterAttribute{/// <summary>/// /// </summary>/// <param name"actionExecutedContext&q…

CCF-CSP 202312-3 树上搜索(Java、C++、Python)

文章目录 树上搜索题目背景问题描述输入格式输出格式样例1输入样例1输出样例解释子任务 满分代码JavaCPython 树上搜索 题目背景 西西艾弗岛大数据中心为了收集用于模型训练的数据&#xff0c;推出了一项自愿数据贡献的系统。岛上的居民可以登录该系统&#xff0c;回答系统提…

在 Amazon EKS 上部署生成式 AI 模型

导言 生成式 AI 正在改变企业的运作方式&#xff0c;并加快创新的步伐。总体而言&#xff0c;人工智能正在改变企业利用技术的方式。生成式 AI 技术包括微调和部署大型语言模型&#xff08;LLM&#xff09;&#xff0c;并允许开发人员访问这些模型以执行提示和对话。负责在 Kub…

搭建WebGL开发环境

前言 本篇文章介绍如何搭建WebGL开发环境 WebGL WebGL的技术规范继承自免费和开源的OpenGL ES标准&#xff0c;从某种意义上说&#xff0c;WebGL就是Web版的OpenGL ES&#xff0c;而OpenGL ES是从OpenGL中派生出来的。他们的应用环境有区别&#xff0c;一般来说&#xff1a;…

聊聊百度造车

10月27日&#xff0c;极越-01上市&#xff0c;一个月后大幅降价&#xff0c;时至今日距离发布已经过去了两个月&#xff0c;官方迟迟不肯公布销量&#xff0c;实际情况大家也都心知肚明。 如今小米汽车技术发布会风头无两&#xff0c;而同一年宣布造车的极越却无人问津&#x…

算法随想录第四十八天打卡| 198.打家劫舍 , 213.打家劫舍II , 337.打家劫舍III

详细布置 今天就是打家劫舍的一天&#xff0c;这个系列不算难&#xff0c;大家可以一口气拿下。 198.打家劫舍 视频讲解&#xff1a;动态规划&#xff0c;偷不偷这个房间呢&#xff1f;| LeetCode&#xff1a;198.打家劫舍_哔哩哔哩_bilibili 代码随想录 class Solution(…

【智能家居入门3】(MQTT服务器、MQTT协议、微信小程序、STM32)

前面已经写了三篇博客关于智能家居的&#xff0c;服务器全都是使用ONENET中国移动&#xff0c;他最大的优点就是作为数据收发的中转站是免费的。本篇使用专门适配MQTT协议的MQTT服务器&#xff0c;有公用的&#xff0c;也可以自己搭建&#xff08;应该要钱&#xff09;&#xf…

华为配置ARP安全综合功能实验

配置ARP安全综合功能示例 组网图形 图1 配置ARP安全功能组网图 ARP安全简介配置注意事项组网需求配置思路操作步骤配置文件 ARP安全简介 ARP&#xff08;Address Resolution Protocol&#xff09;安全是针对ARP攻击的一种安全特性&#xff0c;它通过一系列对ARP表项学习和A…

Qt应用开发(安卓篇)——调用ioctl、socket等C函数

一、前言 在 Qt for Android 中没办法像在嵌入式linux中一样直接使用 ioctl 等底层函数&#xff0c;这是因为因为 Android 平台的安全性和权限限制。 在 Android 中&#xff0c;访问设备硬件和系统资源需要特定的权限&#xff0c;并且需要通过 Android 系统提供的 API 来进行。…

在线版XD,免费使用,功能全面,设计神器!

Adobe XD是什么软件&#xff1f; Adobe XD软件是一个结合设计和建立原型功能的一站式UX/UI设计平台。在XD软件中&#xff0c;数字团队可以进行移动应用、网页设计和原型制作。与此同时&#xff0c;Adobe XD软件也是一种跨平台设计产品&#xff0c;结合设计和建立原型功能&…

力扣 122.买卖股票的最佳时机 II

代码&#xff1a; class Solution { public:int maxProfit(vector<int>& prices) {if(prices.size()1) return 0;int res 0;int i0;while(i<prices.size()-1){int ji1;if(prices[j]>prices[i]){//在找到对应元素的下一个元素比他大的时候买入while(j1 < p…

研学活动报名平台源码开发方案

一、项目背景与目标 &#xff08;一&#xff09;项目背景 研学活动报名平台旨在为活动组织者提供方便快捷的研学活动管理工具&#xff0c;同时为用户提供全面的活动搜索、报名和支付等功能。通过该系统&#xff0c;活动组织者能够更好地管理活动报名信息&#xff0c;用户也可…

系统架构设计师-22年-下午题目

系统架构设计师-22年-下午题目 更多软考知识请访问 https://ruankao.blog.csdn.net/ 试题一必答&#xff0c;二、三、四、五题中任选两题作答 试题一 (25分) 说明 某电子商务公司拟升级其会员与促销管理系统&#xff0c;向用户提供个性化服务&#xff0c;提高用户的粘性。…

Unity之第一人称角色控制

目录 第一人称角色控制 &#x1f634;1、准备工作 &#x1f4fa;2、鼠标控制摄像机视角 &#x1f3ae;3、角色控制 &#x1f603;4.杂谈 第一人称角色控制 专栏Unity之动画和角色控制-CSDN博客的这一篇也有讲到角色控制器&#xff0c;是第三人称视角的&#xff0c;以小编…

【LeetCode】142. 环形链表 II

leetcode题目链接 142. 环形链表 II /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/ typedef struct ListNode ListNode;ListNode *detectCycle(ListNode *head) {ListNode *slow head, *fast head;while (…

【读点论文】SPTS Single-Point Text Spotting

SPTS Single-Point Text Spotting ABSTRACT 现有的场景文本识别(即&#xff0c;端到端文本检测和识别)方法依赖于昂贵的边界框注释(例如&#xff0c;文本行&#xff0c;词级或字符级边界框)。我们首次证明&#xff0c;训练场景文本识别模型可以通过对每个实例的单点进行极低成…

Cmake编译Opencv3.3.1遇到有些文件无法下载的错误解决:

前言&#xff1a; 对于&#xff0c;opencv有些配置文件错误并未致命&#xff0c;所以&#xff0c;有错误也不影响后续的编译&#xff1a;但是&#xff0c;后引用如果要用&#xff0c;在回过头来还是要解决的。 问题表述&#xff1a; 比如&#xff0c;有些文件下载的错误&am…

uni-app在hbuilderx打开微信开发工具运行

一、运行设置配置微信开发者工具路径 运行-运行到小程序模拟器-运行设置 配置微信开发工具的安装路径&#xff08;可浏览文件位置选择&#xff09;&#xff1b;web服务器端口号在第二步骤获得&#xff1b; 二、打开微信开发者工具设置-安全设置 打开服务端口开关&#xff0…