Linux 三剑客之AWK

1. 命令

awk [参数] [处理内容] [操作对象]

1.1. 参数

        -F参数:这个参数用于指定输入字段的分隔符。例如,awk -F: '{print $1}' file.txt 会将文件file.txt中以冒号分隔的第一个字段打印出来。如果不指定-F参数,awk默认使用空格或制表符作为字段分隔符。

        -v参数:该参数用于在awk脚本中创建变量并赋值。例如,awk -v var=10 '{print $1+var}' file.txt 会将file.txt中每行的第一个字段与变量var相加并打印出来。

        -f参数:这个参数允许从文件中读取awk脚本,这样可以将复杂的awk脚本保存在文件中,然后通过 awk -f script.awk file.txt 来执行。这对于处理复杂的文本处理任务非常有用,可以使脚本更易于管理和重用。

1.2. 处理内容

操作(Action):操作是在模式匹配成功后要执行的命令。这些命令通常用花括号 {} 包围,并且可以包含任何有效的 awk 语句,例如打印字段、进行数学运算等。

1.3. 操作对象

        处理文件:通常,你可以在命令行中指定一个或多个文件名,awk 会按照给定的文件顺序逐个处理。

        处理标准输入:如果没有指定文件,awk 可以从标准输入(stdin)中读取数据。这通常是通过管道将其他命令的输出传递给 awk。

2. 模式

        正则表达式匹配:awk支持使用正则表达式进行模式匹配。例如,awk '/pattern/ { action }' 会匹配包含特定模式的行,并对这些行执行相应的操作。正则表达式可以非常灵活,能够匹配各种复杂的文本模式。

        关系运算符匹配:awk也支持使用关系运算符进行模式匹配,如等于(==)、不等于(!=)、大于(>)、小于(<)、大于等于(>=)、小于等于(<=)等。这些运算符可以用来比较字段或变量的值,从而根据比较结果执行相应的操作。

        组合模式匹配:可以将正则表达式和关系运算符结合起来使用,以创建更复杂的匹配模式。例如,可以使用逻辑运算符&&(与)和||(或)来组合多个条件,从而实现更精细的匹配控制。

        范围模式匹配:awk还支持范围模式匹配,即指定一个开始模式和一个结束模式,然后对这个范围内的所有行执行特定的操作。这种匹配方式在处理具有特定结构的文本文件时非常有用。

        BEGIN和END模式:BEGIN和END是awk的特殊模式,它们分别在处理输入文件之前和之后执行一次。BEGIN模式通常用于初始化变量或执行一些预处理操作,而END模式则用于在处理完所有输入后执行一些清理或总结性操作。

        ENDFILE模式: ENDFILE是 awk 中的一个特殊模式,它在处理多文件输入时非常有用。当 awk 读取并处理完一个输入文件的所有行之后,但在开始处理下一个输入文件之前,会执行与 ENDFILE 模式相关联的动作。这个模式在 awk 的较新版本(例如 gawk)中可用。

3. 变量

3.1. 内置变量

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

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

        RS:输入记录分隔符(输入换行符), 指定输入时的换行符

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

        NF:number of Field,当前行的字段的个数(即当前行被分割成了几列),字段数量

       

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

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

相关文章

人机协同中的墨菲定律

墨菲定律&#xff1a;如果有两种或两种以上的方式去做某件事情&#xff0c;而其中一种选择方式将导致灾难&#xff0c;则必定有人会做出这种选择。人机协同中的墨菲定律如何呢&#xff1f;下面我们将对此进行简单讨论。 人机协同中的墨菲定律可以理解为&#xff1a;如果在人与机…

户外指南——时代产物

分类 一级分类&#xff1a; 衣&#xff1a;除了上述提到的&#xff0c;还包括衣物的材质、款式多样性、与身份地位的关联等。 食&#xff1a;还包括饮食的文化内涵、地域特色、对特殊饮食需求的满足等。 住&#xff1a;还包括居住空间的合理布局、智能家居的应用、与自然环境…

不定期会议对团队开发的影响(项目管理篇)

不定期会议&#xff0c;即没有固定周期或事先规划的临时召集的会议&#xff0c;对于团队开发可能产生多种影响&#xff0c;既有积极的一面&#xff0c;也有潜在的挑战。以下是具体分析&#xff1a; 积极影响&#xff1a; 应对突发情况&#xff1a; 不定期会议能够迅速响应项…

C# 异步编程模式详解

在软件开发中&#xff0c;异步编程是一种重要的编程范式&#xff0c;它允许代码在等待操作完成时继续执行。特别是在处理耗时的I/O操作&#xff08;如文件读写、网络请求和数据库操作&#xff09;时&#xff0c;异步编程可以显著提高应用程序的响应性和性能。C# 语言提供了丰富…

微信小程序中前端 授权登录获取用户的openid

序言&#xff1a; 集百家之所长&#xff0c;方成此篇&#xff0c;废话少说&#xff0c;上代码&#xff1b;找好你的小程序APPID,AppSecret(小程序密钥)&#xff0c;进行配置&#xff0c;然后复制粘贴代码&#xff0c;就可以了。 //微信小程序授权登录获取用户的openidwx.getUse…

B2B企业如何做好谷歌Google广告推广营销布局?

当今全球化的商业环境中&#xff0c;B2B企业要想在激烈的市场竞争中脱颖而出&#xff0c;拓展海外市场成为了必经之路。而谷歌Google广告&#xff0c;作为全球最大的在线广告平台&#xff0c;无疑是企业触达全球潜在客户的黄金钥匙。云衔科技通过专业服务助力企业轻松开户与高效…

ASAN

文章目录 ASAN 简介实例一&#xff0c;检测内存泄漏实例二&#xff0c;检测悬空指针访问实例三&#xff0c;检测堆溢出实例四&#xff0c;检测栈溢出ASAN 原理使用技巧KASAN ASAN 简介 ASAN 是 Address Sanitizer 的简称&#xff0c;是 GCC 自带的内存问题检查工具&#xff0c…

Java苍穹外卖01-开发环境搭建(Git、nginx)-Swagger-员工管理

一、开发环境搭建 1.项目架构 2.Git版本管理 在IDEA中可以一键搭建并commit&#xff0c;当Git远程仓库搭建后就可以push 3.前后端联调 Builder注解&#xff1a; 加了注解后就可以通过这样的方式创建对象 接收传入的是dto对象&#xff0c;传出去的对象为vo对象 4.nginx反向…

JavaScript 前端枚举库 js-enumerate

JavaScript 前端枚举库js-enumerate 1. 安装1.1 NodeJS1.2 Bower 2 使用2.1 constructor构造函数2.2 register全局注册2.3 用法示例2.4 前端组件中使用2.5 其他扩展用法2.6 内置属性2.7 Enum object API2.8 其他注意事项 3. 推荐 Enum is a javascript enumeration module. It …

4.18.2 EfficientViT:具有级联组注意力的内存高效Vision Transformer

现有Transformer模型的速度通常受到内存低效操作的限制&#xff0c;尤其是MHSA&#xff08;多头自注意力&#xff09;中的张量整形和逐元素函数。 设计了一种具有三明治布局的新构建块&#xff0c;即在高效FFN&#xff08;前馈&#xff09;层之间使用单个内存绑定的MHSA&#x…

面向初学者的网络安全(二)

原文&#xff1a;annas-archive.org/md5/8570b4b9b47974c7302ce023e1eb9bc8 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 九、攻击和防御方法的演变 当我写下这本书的第一版时&#xff0c;网络安全只是网络安全专家和精明的高管感兴趣的话题。这本书是为了让任何人…

数组、链表、集合、table、map、二叉树、索引、数据库

数据结构&#xff1a;帮助数据快速读写的一种结构模型&#xff0c;数据库是 系统文件索引&#xff08;索引是各种数据结构提高数据检索以平衡数据读写速度&#xff0c;系统文件是存储用户真正的数据&#xff0c;比如业务表数据、文件、图片等等&#xff09; 1.数组&#xff1a…

本地缓存数据存入文件中

文章目录 演示代码本地缓存数据存入文件从文件提取数据到本地缓存工具类 实战初始化操作执行 本地缓存数据存入文件 的线程任务持久化工具类 演示代码 本地缓存数据存入文件 public static void testQ15() {LinkedBlockingDeque<ConcurrentHashMap<String, ConcurrentHa…

【STM32HAL库】外部中断

目录 一、中断简介 二、NVIC 1.寄存器 2.工作原理 3.优先级 4.使用NVIC 三、EXTI 1.简介 2.AFIO&#xff1a;复用功能IO&#xff0c;主要用于重映射和外部中断映射配置​编辑 3. 中断使用 4.HAL库配置使用 一、中断简介 中断的意义&#xff1a;高效处理紧急程序&#xff0c;不会…

[C++初阶]一些类的选择题

本篇就是举例一些类的选择题,用于提高大家的基础,便于记忆。 1.有一个类A&#xff0c;其数据成员如下&#xff1a; 则构造函数中&#xff0c;成员变量一定要通过初始化列表来初始化的是&#xff1a;&#xff08; &#xff09; &#xfeff;class A { ... private: int a; publi…

SPRD Android 14 通过属性控制系统设置显示双栏或者单栏

SPRD Android 14 通过属性控制系统设置显示双栏或者单栏 第一步 确认有添加静态库第二步 验证第三步 修改源码在合适的地方配置 ro.product.is_support_SettingsSplitEnabled 即可。第一步 确认有添加静态库 --- a/packages/apps/Settings/Android.bp +++ b/packages/apps/Set…

Uniapp 报错Uncaught URIError: URI malformed

场景&#xff1a;数据中有url,或者别的不规则的字符&#xff0c;就会报错 解决办法&#xff1a; 1、将复杂参替换 //传复杂参替换encodeContent(key) {const encodeArr [{code: %,encode: %25}, {code: ?,encode: %3F}, {code: #,encode: %23}, {code: &,encode: %26},…

php反序列化逃逸

php反序列化逃逸 逃逸是php中反序列化时的恶意利用&#xff0c;以ctf为例演示 第一段演示 逃逸为ctf反序列化的内容&#xff0c;主要是对序列化对象进行过滤&#xff0c;其中替换串长度不一致&#xff0c;造成字符逃逸。攻击者可以构造恶意的payload&#xff0c;改变对象中的…

MATLAB循环语句

MATLAB 循环语句 在某些情况下&#xff0c;您需要多次执行一个代码块。通常&#xff0c;语句是按顺序执行的。首先执行函数中的第一条语句&#xff0c;然后执行第二条&#xff0c;依此类推。 编程语言提供了各种控制结构&#xff0c;允许更复杂的执行路径。 循环语句允许我们…

猫头虎分享已解决Bug || **Error: ‘Promise‘ is undefined**

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …