news 2026/4/23 14:16:16

awk命令学习总结

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
awk命令学习总结

一、概述

awk是一个强大的文本分析工具,相对于grep的查找sed的编辑awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。

awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk,gawk 是 awk 的 gnu版本。

awk其名称得自于它的创始人 Alfred Aho 、Peter Weinberger 和 Brian Kernighan 姓氏的首个字母。实际上 awk的确拥有自己的语言: AWK 程序设计语言 , 三位创建者已将它正式定义为“样式扫描和处理语言”。它允许创建简短的程序,这些程序读取输入文件、为数据排序、处理数据、对输入执行计算以及生成报表,还有无数其他的功能。

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

二、语法形式

a)命令行方式

awk [options] 'script' var=value file(s)

awk [-F  field-separator]  'commands'  input-file(s)

其中,commands 是真正awk命令,[-F域分隔符]是可选的。 input-file(s) 是待处理的文件。在awk命令中,文件的每一行中,由域分隔符分开的每一项称为一个域。通常不指名-F域分隔符的情况下,默认的域分隔符是空格。

b)shell脚本方式

awk [options] -f scriptfile var=value file(s) 

将所有的awk命令插入到一个文件,并使awk程序可执行(该文件得有x可执行权限),然后awk命令解释器作为脚本的首行,一般通过键入脚本名称来调用。

相当于shell脚本首行的:#!/bin/sh,可以换成:#!/bin/awk

c) 将所有的awk命令插入一个单独文件,然后调用:

awk '{pattern + action}' {filenames}

awk -f awk-script-file input-file(s)

这里就是将所有的awk脚本插入到awk-script-file这个文件里,之后从中取出来执行。其中,-f选项加载awk-script-file中的awk脚本,input-file(s)是待处理的文件(会逐行读取其中的内容)。

三、常用命令选项

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

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

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

-m[fr] val 对val值设置内在限制

<
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/8 6:36:12

PPO算法训练选择合适的动作空间

选择 PPO 训练机器人的动作空间&#xff0c;核心是先定类型&#xff08;连续 / 离散 / 混合&#xff09;、再控维度与范围、适配硬件与任务、优化后处理与训练稳定性&#xff0c;PPO 更适配连续动作&#xff0c;复杂任务优先分层设计。以下是可执行的决策流程与实操方案&#x…

作者头像 李华
网站建设 2026/4/15 16:49:57

GPU的PCIe总线:带宽对性能的影响

PCIe 总线 是连接 CPU&#xff08;主机/Host&#xff09;和 GPU&#xff08;设备/Device&#xff09;之间主要的外部通信接口。它承载了所有需要在主机内存&#xff08;系统内存&#xff09;和设备内存&#xff08;显存&#xff09;之间传输的数据和控制信号。1. PCIe 总线的关…

作者头像 李华
网站建设 2026/4/18 23:25:15

从崩溃到恢复只需一步:Open-AutoGLM任务状态持久化设计(工程师必看)

第一章&#xff1a;从崩溃到恢复&#xff1a;任务状态持久化的价值与挑战在现代分布式系统中&#xff0c;任务的执行往往跨越多个节点和长时间周期。一旦系统发生崩溃或网络中断&#xff0c;如何确保任务状态不丢失、并能准确恢复至断点&#xff0c;成为保障系统可靠性的核心问…

作者头像 李华
网站建设 2026/4/23 3:06:41

【性能测试工具抉择难题】:Open-AutoGLM与NeoLoad真实场景对比数据曝光

第一章&#xff1a;性能测试工具对比的背景与意义在现代软件系统日益复杂的背景下&#xff0c;性能测试已成为保障应用稳定性与用户体验的关键环节。随着微服务架构、云原生技术的普及&#xff0c;系统并发能力、响应延迟和资源消耗等指标直接影响业务连续性。选择合适的性能测…

作者头像 李华
网站建设 2026/4/23 13:45:29

6、虚拟化技术全解析:从规划到实施

虚拟化技术全解析:从规划到实施 在当今数字化时代,虚拟化技术的应用愈发广泛。通过合理运用虚拟化技术,能够有效提升资源利用率、降低成本并增强系统的灵活性。本文将详细介绍虚拟化技术相关的多个方面,包括虚拟机部署、服务器迁移、操作系统选择、评估工具使用以及镜像更…

作者头像 李华
网站建设 2026/4/20 8:46:42

Open-AutoGLM与NeoLoad性能测试谁更胜一筹:5大关键指标实测分析

第一章&#xff1a;Open-AutoGLM与NeoLoad性能测试对比背景在当前自动化负载测试与智能模型驱动的性能评估领域&#xff0c;Open-AutoGLM 与 NeoLoad 代表了两种不同的技术路径。Open-AutoGLM 是基于开源大语言模型&#xff08;LLM&#xff09;构建的自动化测试生成框架&#x…

作者头像 李华