awk 命令快速入门
liuian 2024-12-14 13:32 63 浏览
awk 是一个强大的文本分析工具,可以非常方便地处理每行都是相同格式的文本,是Linux中功能强大的数据处理引擎之一。
前面两篇分别示例了 grep/sed 的用法,这篇介绍 awk 的用法。
Linux 文本操作的三大神器:grep、sed、awk,各自的最佳应用场景:
- grep:使用正则表达式搜索文本,并把匹配的行打印出来,是强大的文本搜索工具;
- sed:用于编辑匹配到的文本,是一种流编辑器;
- awk:能够对文本进行复杂的格式处理,是一种处理文本的语言。
awk 可以进行样式装入、流控制、数学运算、流程控制,还有内置的变量和函数,具备一个完整语言所应具有的几乎所有完美特性,相当于一个小型编程语言。
awk 的三位创始者将其定义为:样式扫描和处理语言。
1、awk 的基本用法
awk 是以文件的一行为处理单位的,awk每接收文件的一行,就执行相应的命令。
基本命令格式:
awk '{pattern + action}' <file>其中,pattern表示在数据中要查找的内容,action表示要执行的一系列命令。
awk 通过指定分隔符,将一行分为多个字段,依次用 $1、$2 ... $n 表示第一个字段、第二个字段... 第n个字段。
比如有一log文件,若只想获取 vel、acc、steer 的值,则可以通过下面的命令:
awk '{print $2, $4, $6}' log2、awk 的分隔符
awk的默认分隔符是空格和制表符,上面的例子中,若希望把逗号去掉,则可以使用 -F 参数来指定分隔符,命令如下:
awk -F ':|,' '{print $2, $4, $6}' log这里指定冒号(:)和逗号(,)同时作为分隔符。
3、awk 的内置变量
除了 $1、$2 ... $n,awk 还有一些内置变量,常用的如下:
- $0:表示当前整行,$1表示第一个字段,$2表示第二个字段,$n 表示第n个字段;
- NR:表示当前已读的行数;
- NF:表示当前行被分割的列数,NF表示最后一个字段,NF-1 表示倒数第二个字段;
- FILENAME:表示当前文件的名称
如下图所示,在每一行前加上文件名、行号、每行列数,命令如下:
awk '{print FILENAME, NR, NF, ":", $0}' log4、条件判断
awk 的 pattern 也支持使用条件判断,比如只打印 vel 小于 5.0 的行,命令如下:
awk '$2 < 5.0 {print $0}' log5、统计值的计算
awk 还可以快速计算出一些统计值,比如最大值,最小值,平均值等。
比如计算 vel 的最大值,命令如下:
awk -F ':|,' 'BEGIN {max=0} {if($2>max) max=$2} END {print "max vel:", max}' log计算 acc 的最小值,命令如下:
awk -F ':|,' 'BEGIN {min=10} {if($4<min) min=$4} END {print "min acc:", min}' log计算 steer 的平均值,命令如下:
awk -F ':|,' 'BEGIN {sum=0} {sum+=$6} END {print "mean steer:", sum/NR}' log上面命令中的 BEGIN 和 END 都是awk的关键字:
- BEGIN:表示在awk程序开始前执行一次;
- END:表示在awk程序结束后执行一次。
6、print和printf
awk 同时支持 print 和 printf 两种打印输出的函数。
- print:其参数可以是变量、数值或字符串,字符串必须用双引号,参数用逗号分开;
- printf:其用法与C语言的printf相似,可以格式化输出。
如下图所示,通过printf指定显示两位小数。
相关推荐
- w7主题设置(w7怎么换主题)
-
1、打开win7系统电脑左下角“开始”菜单,找到【控制面板】点击打开;2、进入控制面板界面,右上方【查看方式】更改为“小图标”,然后找到【管理工具】打开;3、进入“管理工具”,点击打开【服务】选项;4...
-
- 显卡温度多少正常范围(显卡温度一般在什么范围合理)
-
1、正常情况下显卡的温度是在30至85这个区间。2、如果是天气热一点的话,保持在50至85也是属于正常的。3、如果电脑在玩着大型游戏,显卡温度达到90以上都是有可能的。4、但如果你的显卡温度超过95度的话,就要注意一下了,这个时候可以保持室...
-
2026-01-03 01:55 liuian
- 惠普1008打印机驱动安装教程
-
首先,你可以从惠普官网下载最新的驱动程序并解压缩。接下来,双击解压后的驱动文件并跟随提示完成安装。如果你遇到任何问题,可以尝试用管理员权限运行安装程序或尝试重新启动电脑后再次安装驱动。最后,检查设备管...
- 惠普打印机官方售后维修服务中心
-
郑州市金水区文化路82硅谷广场B座1303室营业时间:周一至周日9:00-18:00支持品牌:惠普支持产品:笔记本电脑,台式机,显示器维修项目:不开机,死机重启,清理除尘,数据恢复等郑州市黄河南街与同...
- 电脑怎么安装win10装系统(电脑怎么安装win10装系统按哪个键)
-
Windows10系统安装教程如下:准备好所需的文件和文件夹,包括安装介质(例如安装光盘、USB闪存驱动器或网络安装介质),以及需要包含Windows10镜像文件的文件和文件夹...
- 国内哪个ai写代码最强(ai用什么代码编程)
-
是的,coloros小布ai可以写代码。它具有图灵完备的编程能力,并且可以通过编程语言进行逻辑推理和计算,实现各种功能。通过编程,可以让coloros小布ai执行特定的任务、完成复杂的计算和处理数据,...
- 正版win7下载官网(正版win7旗舰版下载官网)
-
去gsdn官网选择相应的版本1.打开您的浏览器,访问官方下载页面:https://www.minecraft.net/zh-hans/2.点击“获取”按钮,在弹出的对话框中选择“对PC/Mac购买...
-
- office2010软件(office2010软件下载)
-
看你怎么激活了,正规渠道正版激活这个是最便宜的微软原装正版办公软件office2010中文学生家庭版1用户简包/COEM¥790.00这个是最贵的微软Office2010专业版中文版特含Publisher,Access两大组...
-
2026-01-02 21:55 liuian
- 电脑下边任务栏跑到左边怎么办
-
电脑桌面的菜单栏从底部跑到左边,想要复原的方法如下:1、鼠标右击“任务栏”空白处,在打开的菜单中点击“属性”2、在弹窗中,找到“屏幕上的任务位置”,在它的右侧点一下倒三角。3、点一下“确定”,接下来就...
- win10关闭防火墙通知(win10关闭防火墙通知怎么关闭)
-
可以关闭防火墙win10提醒。因为win10自带的防火墙会有提醒功能,但有些用户会觉得这个提醒不必要,可以关闭。具体操作步骤是:右键点击Windows徽标,选择“Windows防火墙”,点击“高级设置...
- 微软公司介绍(微软公司介绍文案)
-
微软美国跨国科技公司微软(Microsoft)是一家美国跨国科技企业,1975年4月4日创立。2023财年营收2119.15亿美元,[200]公司总部设立在华盛顿州雷德蒙德(Redmond,邻近西雅图...
- 怎样设置电脑桌面密码(设置电脑桌面密码步骤)
-
首先,需要确定你是想设置电脑屏幕保护密码还是系统登录密码。如果是屏幕保护密码,可以在电脑设置中进行修改。打开控制面板,找到“个性化”或“外观和个性化”选项,再找到“屏幕保护器”选项,点击“设置”,在弹...
- 繁体字输入法下载(繁体字输入法下载安装)
-
你下载百度手机输入法,默认的就是双拼,可以自己选择26键拼音输入01打开苹果手机,找到苹果商城,02打开下载中心,搜索“搜狗输入法”,03下载搜狗输入法,04等下载完成后桌面上会显示搜狗输入法,05然...
- 一周热门
- 最近发表
- 标签列表
-
- python判断字典是否为空 (50)
- crontab每周一执行 (48)
- aes和des区别 (43)
- bash脚本和shell脚本的区别 (35)
- canvas库 (33)
- dataframe筛选满足条件的行 (35)
- gitlab日志 (33)
- lua xpcall (36)
- blob转json (33)
- python判断是否在列表中 (34)
- python html转pdf (36)
- 安装指定版本npm (37)
- idea搜索jar包内容 (33)
- css鼠标悬停出现隐藏的文字 (34)
- linux nacos启动命令 (33)
- gitlab 日志 (36)
- adb pull (37)
- python判断元素在不在列表里 (34)
- python 字典删除元素 (34)
- vscode切换git分支 (35)
- python bytes转16进制 (35)
- grep前后几行 (34)
- hashmap转list (35)
- c++ 字符串查找 (35)
- mysql刷新权限 (34)
