Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >awk命令用法大全

awk命令用法大全

原创
作者头像
玖叁叁
发布于 2023-04-09 06:58:50
发布于 2023-04-09 06:58:50
1.4K15
代码可运行
举报
文章被收录于专栏:玖叁叁玖叁叁
运行总次数:5
代码可运行

Awk 是一个非常强大的文本处理工具,它可以对文本文件进行数据提取、过滤、转换和格式化等操作。Awk 的语法比较简单,但功能非常强大,掌握它可以大幅提高文本处理的效率。下面是 Awk 的一些常用用法,供大家参考。

Awk 命令的基本语法

Awk 命令的基本语法如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
awk 'pattern {action}' filename

其中 pattern 是匹配文本的条件,action 是对匹配的文本进行操作的命令,filename 是待处理的文件名。如果省略 filename,则 Awk 命令会从标准输入读取数据。

Awk 命令的工作原理

Awk 命令的工作原理是逐行读取文件,然后将每一行的文本按照指定的分隔符划分成一系列的字段。在处理每一行文本的时候,Awk 会根据指定的 pattern 来进行匹配,如果匹配成功,则执行对应的 action。

Awk 命令的常用选项

以下是 Awk 命令的一些常用选项:

  • -F 指定分隔符
  • -v 定义变量
  • -f 指定 awk 脚本文件

Awk 命令的常用模式

以下是 Awk 命令的一些常用模式:

  • /pattern/ 匹配包含 pattern 的文本行
  • $n 匹配当前行的第 n 个字段
  • NR == n 匹配第 n 行
  • NF > n 匹配有超过 n 个字段的行

Awk 命令的常用操作

以下是 Awk 命令的一些常用操作:

  • print 打印指定的文本或变量
  • printf 格式化打印指定的文本或变量
  • getline 读取下一行的文本
  • length 计算指定文本或变量的长度
  • substr 提取指定文本或变量的子字符串
  • split 将指定文本或变量按照指定的分隔符划分为数组

Awk 命令的示例

以下是 Awk 命令的一些示例:

打印文件的每一行

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
awk '{print}' filename

打印文件的第一列和第三列

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
awk '{print $1,$3}' filename

根据第一列进行排序

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
awk '{print $0}' filename | sort -k1

打印文件的第一列和第三列,以逗号为分隔符

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
awk -F, '{print $1,$3}' filename

根据指定的条件进行匹配和打印

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
awk '/pattern/ {print $0}' filename

根据第一列进行求和

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
awk '{sum += $1} END {print sum}' filename

根据第一列进行分组并计算每组的平均值

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
awk '{sum[$1] += $2; count[$1]++} END {for (i in sum) print i, sum[i]/count[i]}' filename

按照指定的格式打印文本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
awk '{printf "%-10s %-10s %10s\n", $1, $2, $3}' filename

读取多个文件并打印每个文件的行数和字节数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
awk '{lines += NR; bytes += length} END {print lines, bytes}' filename1 filename2

判断文本是否符合指定的条件并进行处理

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
awk '/pattern/ {if ($1 > 10) print "large"; else print "small"}' filename

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
1 条评论
热度
最新
写的不错
写的不错
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
Linux awk命令详细教程
AI摘要:本文详细介绍了Linux下的文本处理工具awk的使用方法,包括其语法、选项参数、内置变量、常用操作(如打印、条件判断、循环等)以及一些实用的示例。awk通过将文本按行读取并以指定的分隔符分割成多个字段,使得对文本的处理变得灵活高效。文章还提供了如何打印指定列、过滤日志、按条件统计、指定多个分隔符、日志切割、匹配指定列和统计文件大小等实际应用示例,以及一个统计nginx日志数据的awk脚本示例。通过这些内容,读者可以全面掌握awk命令的强大功能,有效地应用于日志分析、数据处理等场景。
曈曈too
2024/03/16
7430
linux awk命令使用详解
Awk是一种文本处理工具,它可以用来从文本文件中提取数据并对其进行处理。Awk命令非常强大,可以将它用于各种文本处理任务,包括数据转换、数据提取、报告生成等。在本文中,我们将深入探讨Awk命令的用法,并提供一些常见的示例。
堕落飞鸟
2023/03/27
2.4K0
软件测试|Linux三剑客之awk命令详解
awk 是一种强大的文本处理工具,在 Unix 和类 Unix 系统中广泛使用。它允许您在文本文件中进行复杂的数据处理和格式化输出。awk 的名字是根据它的三位创始人Aho、Weinberger 和Kernighan姓氏的首字母命名的。本文将详细介绍 awk 命令的基本用法和一些常见的用例。
霍格沃兹测试开发Muller老师
2023/10/19
5070
软件测试|Linux三剑客之awk命令详解
awk 是一种强大的文本处理工具,在 Unix 和类 Unix 系统中广泛使用。它允许您在文本文件中进行复杂的数据处理和格式化输出。awk 的名字是根据它的三位创始人Aho、Weinberger 和Kernighan姓氏的首字母命名的。本文将详细介绍 awk 命令的基本用法和一些常见的用例。
霍格沃兹测试开发Muller老师
2023/10/25
4010
软件测试|Linux三剑客之awk命令详解
Linux命令(36)——awk命令
AWK是一个优良的文本处理工具,Linux及Unix环境中现有的功能最强大的数据处理引擎之一。数据可以来自标准输入(stdin)、一个或多个文件,或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。它在命令行中使用,但更多是作为脚本来使用。awk有很多内建的功能,比如数组、函数等,这是它和C语言的相同之处,灵活性是awk最大的优势。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。
恋喵大鲤鱼
2018/08/03
2.6K0
三剑客中的利器——Awk
Awk是一种文本处理工具,它的名字是由其三位创始人(Aho、Weinberger和Kernighan)的姓氏首字母组成的。Awk的设计初衷是用于处理结构化文本数据,它提供了强大的模式匹配和数据提取功能。
用户5921339
2025/05/20
1800
三剑客中的利器——Awk
linux awk命令详解
简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。 awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本。 awk其名称得自于它的创始人 Alfred Aho 、Peter Weinberger 和 Brian Kernighan 姓氏的首个字母。实际上 AWK 的确拥有自己
千往
2018/01/24
3.1K0
awk命令详解
awk是专门为文本处理设计的编程语言,是一门数据驱动的编程语言,与sed类似都是以数据驱动的行处理软件,主要用于数据扫描、过滤、统计汇总工作,数据可以来自标准输入、管道或者文件。
全栈程序员站长
2022/09/08
2.9K0
awk命令详解
linux中的awk命令详解
关于awk脚本,我们需要注意两个关键词BEGIN和END。 BEGIN{ 这里面放的是执行前的语句 } END {这里面放的是处理完所有的行后要执行的语句 } {这里面放的是处理每一行时要执行的语句} 假设有这么一个文件(学生成绩表):
全栈程序员站长
2022/09/08
1.8K0
linux中的awk命令详解
awk 简单使用教程
之前我一直使用 Python 来处理 Linux 的一些文本,但是对于一些大文本的简单处理,Python 麻烦而且慢,于是现在慢慢改用awk来处理,很多时候一行命令就能解决,因此非常方便。针对使用是过程的一些心得,写个小小的教程,awk太强大了,需要慢慢长时间的学习,我尽量保持更新这个教程吧。
泽霖
2023/11/28
5160
技能篇:awk教程-linux命令
AWK是一门解释型的编程语言。用于文本处理,它的名字来源于它的三位作者的姓氏:Alfred Aho, Peter Weinberger 和 Brian Kernighan
潜行前行
2021/06/25
2K0
技能篇:awk教程-linux命令
Linux awk 命令
AWK是一种处理文本文件的语言,是一个强大的文本分析工具。之所以叫AWK是因为其取了三位创始人Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的 Family Name 的首字符。
狼啸风云
2019/11/03
4.7K0
【天枢系列 01】Linux行数统计:命令对决,谁才是王者?
在 Linux 中,你可以使用多种命令来统计文件的行数。以下是其中一些常用的命令:
夏之以寒
2024/03/04
8270
简明AWK实战教程
AWK是一个强大的格式化文本处理工具,一般在类Unix操作系统中都是必带的工具(Linux、Mac OS),因此,使用无需安装,非常的方便与便捷。
流川枫
2018/09/12
1.9K0
简明AWK实战教程
linux三剑客之awk,linux必学的强大工具!
Linux 文本处理三剑客grep、sed、awk,这三个命令在工作和面试过程中出现的频率非常高,有时候很复杂的需求,一条简单的命令就可以实现,今天就先学习一下最强大的awk。
吾非同
2021/12/21
3.1K0
linux三剑客之awk,linux必学的强大工具!
awk命令结构/内置变量/获取文本某行或某列
一个awk脚本通常由:BEGIN语句块、能够使用模式匹配的通用语句块、END语句块3部分组成,这三个部分是可选的。任意一个部分都可以不出现在脚本中,脚本通常是被单引号或双引号中,例如:
yiduwangkai
2019/09/17
2.5K0
Linux进阶命令-awk&uniq
作者介绍:简历上没有一个精通的运维工程师。请点击上方的蓝色《运维小路》关注我,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。
运维小路
2024/11/01
2800
Linux进阶命令-awk&uniq
高手必知的Linux三剑客:grep、sed、awk
在Linux世界中,有三把强大的文本处理工具,它们被称为"三剑客":grep、sed和awk。这些工具是Linux系统管理员和开发者的必备技能,它们能够高效地处理文本数据,进行复杂的文本搜索、替换和报告生成等任务。
炒香菇的书呆子
2024/08/08
1.1K0
Linux之awk命令详解(一)
awk是一个报告生成器,拥有强大的文本格式化能力。它的命名方式也是由三位大佬,分别叫Aho,Weinberger,Kernighan,的三个人,awk命令取得他们的名字首字母。
AsiaYe
2019/11/06
12.2K0
一天一个 Linux 命令(21):awk 命令
本文为joshua317原创文章,转载请注明:转载自joshua317博客 https://www.joshua317.com/article/151
joshua317
2021/10/09
2.2K0
相关推荐
Linux awk命令详细教程
更多 >
LV.9
腾云先锋腾云先锋(TDP)成员
领券
一站式MCP教程库,解锁AI应用新玩法
涵盖代码开发、场景应用、自动测试全流程,助你从零构建专属AI助手
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验