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

认识awk

awk

认识awk

  awk是一种编程语言,用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入(stdin)、一个或多个文件,或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。它在命令行中使用,但更多是作为脚本来使用。awk有很多内建的功能,比如数组、函数等,这是它和C语言的相同之处,灵活性是awk最大的优势。

  awk其实不仅仅是工具软件,还是一种编程语言。不过,本文只介绍它的命令行用法,对于大多数场合,应该足够用了。

使用awk

 语法

awk` `[options] ``'program'` `var=value ``file``…``awk` `[options] -f programfile var=value ``file``…``awk` `[options] ``'BEGIN{ action;… } pattern{ action;… } END{ action;… }'` `file` `...

  

常用命令选项

  • -F fs:fs指定输入分隔符,fs可以是字符串或正则表达式,如-F:

  • -v var=value:赋值一个用户定义变量,将外部变量传递给awk

  • -f scripfile:从脚本文件中读取awk命令

 awk变量

变量:内置和自定义变量,每个变量前加 -v 命令选项

 内置变量

(1)格式

FS输入字段分隔符默认为空白字符

OFS输出字段分隔符,默认为空白字符

RS :输入记录分隔符,指定输入时的换行符,原换行符仍有效

ORS :输出记录分隔符,输出时用指定符号代替换行符

NF :字段数量,共有多少字段, $NF引用最后一列,$(NF-1)引用倒数第2列

NR行号,后可跟多个文件,第二个文件行号继续从第一个文件最后行号开始

FNR :各文件分别计数, 行号,后跟一个文件和NR一样,跟多个文件,第二个文件行号从1开始

FILENAME :当前文件名

ARGC :命令行参数的个数  

printf命令

比print更强大

 格式

1)格式化输出

printf` `"FORMAT"``, item1,item2, ...

① 必须指定FORMAT

不会自动换行,需要显式给出换行控制符,\n

③ FORMAT 中需要分别为后面每个item 指定格式符

(2)格式符:与item 一一对应

  • %c: 显示字符的ASCII码

  • %d, %i: 显示十进制整数

  • %e, %E: 显示科学计数法数值

  • #[.#]:第一个数字控制显示的宽度;第二个# 表示小数点后精度,%5.1f

  • -:左对齐(默认右对齐) %-15s

  • +:显示数值的正负符号 %+d

  • ARGV :数组,保存的是命令行所给定的各参数,查看参数

4.5 操作符

4.5.1 格式

  • 算术操作符:

    • x+y, x-y, x*y, x/y, x^y, x%y

    • -x: 转换为负数

    • +x: 转换为数值

  • 字符串操作符:没有符号的操作符,字符串连接

  • 赋值操作符:

    • =, +=, -=, *=, /=, %=, ^=

    • ++a, --a

  • 比较操作符:

    • ==, !=, >, >=, <, <=

  • 模式匹配符:~ :左边是否和右边匹配包含 !~ :是否不匹配

  • 逻辑操作符:与&& ,或|| ,非!

  • 函数调用: function_name(argu1, argu2, ...)

  • 条件表达式(三目表达式):

    selector

    ?

    if-true-expression

    :

    if-false-expression

    • 注释:先判断selector,如果符合执行 ? 后的操作;否则执行 : 后的操作

相关文章:

认识awk

awk 认识awk awk是一种编程语言&#xff0c;用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入(stdin)、一个或多个文件&#xff0c;或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进功能&#xff0c;是linux/unix下的一个强大编程工具。它在命令行…...

【C#学习笔记】数组和索引器

文章目录 数组单维数组多维数组交错数组 索引器类上的索引器方法1方法2 接口中的索引器 数组 数组具有以下属性&#xff1a; 数组可以是一维、多维或交错的。创建数组实例时&#xff0c;将建立纬度数量和每个纬度的长度。 这些值在实例的生存期内无法更改。数值数组元素的默认…...

常见距离计算的Python实现

常见的距离有曼哈顿距离、欧式距离、切比雪夫距离、闵可夫斯基距离、汉明距离、余弦距离等&#xff0c;用Python实现计算的方式有多种&#xff0c;可以直接构造公式计算&#xff0c;也可以利用内置线性代数函数计算&#xff0c;还可以利用scipy库计算。 1.曼哈顿距离 也叫城市…...

开发运营监控

DevOps 监控使管理员能够实时了解生产环境中的元素&#xff0c;并有助于确保应用程序平稳运行&#xff0c;同时提供最高的业务价值&#xff0c;对于采用 DevOps 文化和方法的公司来说&#xff0c;这一点至关重要。 什么是开发运营监控 DevOps 通过持续开发、集成、测试、监控…...

食品小程序的制作教程

在今天的互联网时代&#xff0c;小程序已经成为了各行业推广和销售的重要途径。特别是对于食品行业来说&#xff0c;拥有一个专属的小程序商城可以带来更多的用户和销售机会。那么&#xff0c;如何制作一个完美的食品小程序呢&#xff1f;下面就跟随我来一步步教你&#xff0c;…...

Kubernetes(K8s)从入门到精通系列之十三:软件负载平衡选项

Kubernetes K8s从入门到精通系列之十三&#xff1a;软件负载平衡选项 一、软件负载平衡选项二、keepalived and haproxy三、keepalived配置四、haproxy配置五、选项 1&#xff1a;在操作系统上运行服务六、选项 2&#xff1a;将服务作为静态 Pod 运行 一、软件负载平衡选项 当…...

数据特征选择 | Matlab实现具有深度度量学习的时频特征嵌入

文章目录 效果一览文章概述源码设计参考资料效果一览 文章概述 数据特征选择 | Matlab实现具有深度度量学习的时频特征嵌入。 深度度量学习尝试学习非线性特征嵌入或编码器,它可以减少来自同一类的示例之间的距离(度量)并增加来自不同类的示例之间的距离。 以这种方式工作的…...

浅谈webpack

文章目录 Webpackwebpack的工作原理webpack的构建流程Webpack的基本功能有哪些Webpack常用配置 Webpack Webpack是一个现代的JavaScript应用程序静态模块打包工具。它是一个用于构建和打包前端资源的工具&#xff0c;可以将多个模块和资源&#xff08;如JavaScript、CSS、图片…...

【 stable diffusion LORA模型训练最全最详细教程】

个人网站&#xff1a;https://tianfeng.space/ 文章目录 一、前言二、朱尼酱的赛博丹炉1.介绍2.解压配置3.使用训练准备首页设置上传素材查看进度 三、秋叶的lora训练器1.下载2.预处理3.参数调配 一、前言 其实想写LORA模型训练很久了&#xff0c;一直没时间&#xff0c;总结…...

蓝桥杯上岸每日N题 第八期 (全球变暖)!!!

蓝桥杯上岸每日N题第八期(全球变暖)&#xff01;&#xff01;&#xff01; 同步收录 &#x1f447; 蓝桥杯上岸必背&#xff01;&#xff01;&#xff01;(第五期BFS) 大家好 我是寸铁&#x1f4aa; 冲刺蓝桥杯省一模板大全来啦 &#x1f525; 蓝桥杯4月8号就要开始了 &am…...

CSS基础介绍笔记1

官方文档 CSS指的是层叠样式&#xff08;Cascading Style Sheets&#xff09;地址&#xff1a;CSS 教程离线文档&#xff1a;放大放小&#xff1a;ctrl鼠标滚动为什么需要css&#xff1a;简化修改HTML元素的样式&#xff1b;将html页面的内容与样式分离提高web开发的工作效率&…...

https请求异常引发(Received fatal alert: unrecognized_name):如何快速解决项目中问题?

总结思考&#xff1a;如何做一个出色的开发者&#xff1f; 首先我们要承认我们大部分程序员是应用开发&#xff0c;不是操作系统、协议、框架开发等这类底层开发者。 其一&#xff1a;是否能快速定位问题。如找到出现问题的代码&#xff0c;bug出现在哪一行&#xff0c;哪个应…...

小程序 view下拉滑动导致scrollview滑动事件失效

小程序页面需要滑动功能 下拉时滑动&#xff0c;展示整个会员卡内容&#xff0c; 下拉view里包含了最近播放&#xff1a;有scrollview&#xff0c;加了下拉功能后&#xff0c;scrollview滑动失败了。 <view class"cover-section" catchtouchstart"handletou…...

《ROS2》教程

参考资料&#xff1a; 古月居 B站视频&#xff1a; https://www.bilibili.com/video/BV16B4y1Q7jQ/?spm_id_from333.999.0.0 对应资料&#xff1a;https://book.guyuehome.com/ ROS之前最好有点ROS1的基础&#xff0c;跳转门&#xff1a;ROS-https://www.bilibili.com/video/B…...

抖音seo源码开发源代码搭建分享

抖音SEO源码开发涉及到以下几个方面&#xff1a; 前端开发&#xff1a;包括抖音SEO页面的设计与布局&#xff0c;以及需要使用到的前端技术&#xff0c;如HTML、CSS、JavaScript等。 后端开发&#xff1a;包括抖音SEO页面的数据获取和处理&#xff0c;以及需要使用到的后端技术…...

MATLAB——使用建立好的神经网络进行分类程序

学习目标&#xff1a;使用建立好的神经网络&#xff08;训练好并保存&#xff0c;下次直接调用该神经网络&#xff09;进行分类 clear all; close all; P[-0.4 -0.4 0.5 -0.2 -0.7;-0.6 0.6 -0.4 0.3 0.8]; %输入向量 T[1 1 0 0 1]; …...

Spring5.2.x 源码使用Gradle成功构建

一 前置准备 1 Spring5.2.x下载 1.1 Spring5.2.x Git下载地址 https://gitcode.net/mirrors/spring-projects/spring-framework.git 1.2 Spring5.2.x zip源码包下载&#xff0c;解压后倒入idea https://gitcode.net/mirrors/spring-projects/spring-framework/-/…...

iOS永久签名工具 - 轻松签使用教程

轻松签是一款IOS端免费的IPA签名和安装工具&#xff0c;最新版可以不用依赖证书对ipa永久签名&#xff0c;虽然现在用上了巨魔&#xff08;TrollStore&#xff09;- 是国外iOS开发人员opa334dev发布的一款工具&#xff0c;可以在不越狱的情况下&#xff0c;安装任何一款APP。 …...

如何申请中国境内提供金融信息服务业务许可

依据《外国机构在中国境内提供金融信息服务管理规定》《外国机构在中国境内提供金融信息服务申请许可说明》等政策&#xff0c;外国机构在中国境内提供金融信息服务业务许可要求如下&#xff1a; 金融信息服务定义 所称的外国机构&#xff0c;是指外国金融信息服务提供者。 …...

Java多线程(六)

目录 一、什么是线程安全问题 二、产生线程安全问题的原因 三、解决线程安全问题的方法 3.1 join()等待 3.2 synchronized加锁 3.3 wait()和notify() 3.4 volatile关键字 一、什么是线程安全问题 在操作系统中&#xff0c;线程的调度是随机的&#xff08;抢占式执行&#xff0…...

RIFE帧插值技术:视频增强领域的智能插帧解决方案

RIFE帧插值技术&#xff1a;视频增强领域的智能插帧解决方案 【免费下载链接】video2x A machine learning-based video super resolution and frame interpolation framework. Est. Hack the Valley II, 2018. 项目地址: https://gitcode.com/GitHub_Trending/vi/video2x …...

OpenCore Legacy Patcher:终极指南让老旧Mac焕然新生

OpenCore Legacy Patcher&#xff1a;终极指南让老旧Mac焕然新生 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 你是否有一台被苹果官方放弃支持的老旧Mac&a…...

信号处理中的数字滤波器设计策略指南:从理论到实际应用

信号处理中的数字滤波器设计策略指南&#xff1a;从理论到实际应用 【免费下载链接】gnuradio GNU Radio – the Free and Open Software Radio Ecosystem 项目地址: https://gitcode.com/gh_mirrors/gn/gnuradio 在现代通信系统和信号处理应用中&#xff0c;数字滤波器…...

别再死记公式了!用TL072运放设计带通滤波器,调出干净正弦波的实战心得与误区盘点

TL072运放带通滤波器实战&#xff1a;从波形失真到纯净正弦波的调试艺术 当你第一次用TL072搭建带通滤波器时&#xff0c;是否也遇到过这样的场景&#xff1a;按照教科书上的公式计算参数&#xff0c;焊接好电路&#xff0c;示波器上却显示着畸形的波形——要么顶部扁平像被削峰…...

Fish-Speech 1.5效果展示:双自回归Transformer架构,语音质量惊艳

Fish-Speech 1.5效果展示&#xff1a;双自回归Transformer架构&#xff0c;语音质量惊艳 你听过那种一听就知道是机器人的AI语音吗&#xff1f;生硬、刻板&#xff0c;每个字都像从模板里抠出来的&#xff0c;毫无生气。再听听这个&#xff1a;“今天天气真好&#xff0c;适合…...

LogonTracer核心功能深度解析:4624、4625等关键事件ID的实战应用

LogonTracer核心功能深度解析&#xff1a;4624、4625等关键事件ID的实战应用 【免费下载链接】LogonTracer Investigate malicious Windows logon by visualizing and analyzing Windows event log 项目地址: https://gitcode.com/gh_mirrors/lo/LogonTracer LogonTrace…...

为“自感”留白

为“自感”留白早晨醒来&#xff0c;手机屏幕亮着&#xff0c;几条推送已经整齐地排好了队。它们比我自己更清楚我昨天看过什么、想过什么、可能在今天还想看些什么。我划掉几条&#xff0c;点开一条&#xff0c;于是更多的、相似的推送便如约而至。这本是极便利的事&#xff0…...

万象视界灵坛应用案例:博物馆数字藏品语义标注系统开发实录

万象视界灵坛应用案例&#xff1a;博物馆数字藏品语义标注系统开发实录 1. 项目背景与挑战 博物馆数字化进程中&#xff0c;海量文物藏品的语义标注一直是个难题。传统方法依赖人工标注&#xff0c;不仅效率低下&#xff0c;而且难以保证一致性。以某省级博物馆为例&#xff…...

【Python内存管理黄金法则】:20年SRE亲授生产环境OOM崩溃前的5个关键干预点

第一章&#xff1a;Python智能体内存管理策略的底层认知与生产意义Python智能体&#xff08;如基于LLM的Agent系统&#xff09;在长时间运行、多轮对话与状态缓存场景下&#xff0c;内存行为远超传统脚本应用。其内存压力不仅来自模型权重加载&#xff0c;更源于动态生成的中间…...

自动驾驶RL微调实战:如何用MotionLM提升模型可靠性(附Waymo数据集配置)

自动驾驶RL微调实战&#xff1a;如何用MotionLM提升模型可靠性&#xff08;附Waymo数据集配置&#xff09; 在自动驾驶技术快速迭代的今天&#xff0c;强化学习&#xff08;RL&#xff09;微调已成为提升模型可靠性的关键手段。不同于传统模仿学习&#xff08;IL&#xff09;的…...