百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

awk 命令快速入门

liuian 2024-12-14 13:32 51 浏览


awk 是一个强大的文本分析工具,可以非常方便地处理每行都是相同格式的文本,是Linux中功能强大的数据处理引擎之一。

grep命令快速入门

sed 命令快速入门

前面两篇分别示例了 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}' log

2、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}' log

4、条件判断

awk 的 pattern 也支持使用条件判断,比如只打印 vel 小于 5.0 的行,命令如下:

awk '$2 < 5.0 {print $0}' log

5、统计值的计算

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指定显示两位小数。

相关推荐

搭建一个20人的办公网络(适用于20多人的小型办公网络环境)

楼主有5台机上网,则需要一个8口路由器,组网方法如下:设备:1、8口路由器一台,其中8口为LAN(局域网)端口,一个WAN(广域网)端口,价格100--400元2、网线N米,这个你自己会看了:)...

笔记本电脑各种参数介绍(笔记本电脑各项参数新手普及知识)

1、CPU:这个主要取决于频率和二级缓存,频率越高、二级缓存越大,速度越快,现在的CPU有三级缓存、四级缓存等,都影响相应速度。2、内存:内存的存取速度取决于接口、颗粒数量多少与储存大小,一般来说,内...

汉字上面带拼音输入法下载(字上面带拼音的输入法是哪个)

使用手机上的拼音输入法打成汉字的方法如下:1.打开手机上的拼音输入法,在输入框中输入汉字的拼音,例如“nihao”。2.根据输入法提示的候选词,选择正确的汉字。例如,如果输入“nihao”,输...

xpsp3安装版系统下载(windowsxpsp3安装教程)

xpsp3纯净版在采用微软封装部署技术的基础上,结合作者的实际工作经验,融合了许多实用的功能。它通过一键分区、一键装系统、自动装驱动、一键设定分辨率,一键填IP,一键Ghost备份(恢复)等一系列...

没有备份的手机数据怎么恢复

手机没有备份恢复数据方法如下1、使用数据线将手机与电脑连接好,在“我的电脑”中可以看到手机的盘符。  2、将手机开启USB调试模式。在手机设置中找到开发者选项,然后点击“开启USB调试模式”。  3、...

电脑怎么激活windows11专业版

win11专业版激活方法有多种,以下提供两种常用的激活方式:方法一:使用激活密钥激活。在win11桌面上右键点击“此电脑”,选择“属性”选项。进入属性页面后,点击“更改产品密钥或升级windows”。...

华为手机助手下载官网(华为手机助手app下载专区)

华为手机助手策略调整,已不支持从应用市场下载手机助手,目前华为手机助手是需要在电脑上下载或更新手机助手到最新版本,https://consumer.huawei.com/cn/support/his...

光纤线断了怎么接(宽带光纤线断了怎么接)

宽带光纤线断了可以重接,具体操作方法如下:1、光纤连接的时候要根据束管内,同色相连,同芯相连,按顺序进行连接,由大到小。一般有三种连接方法,分别是熔接、活动连接和机械连接。2、连接的时候要开剥光缆,抛...

深度操作系统安装教程(深度操作系统安装教程图解)
  • 深度操作系统安装教程(深度操作系统安装教程图解)
  • 深度操作系统安装教程(深度操作系统安装教程图解)
  • 深度操作系统安装教程(深度操作系统安装教程图解)
  • 深度操作系统安装教程(深度操作系统安装教程图解)
win7旗舰版和专业版区别(win7旗舰版跟专业版)

1、功能区别:Win7旗舰版比专业版多了三个功能,分别是Bitlocker、BitlockerToGo和多语言界面; 2、用途区别:旗舰版的功能是所有版本中最全最强大的,占用的系统资源,...

万能连接钥匙(万能wifi连接钥匙下载)

1、首先打开wifi万能钥匙软件,若手机没有开启WLAN,就根据软件提示打开WLAN开关;2、打开WLAN开关后,会显示附近的WiFi,如果知道密码,可点击相应WiFi后点击‘输入密码’连接;3、若不...

雨林木风音乐叫什么(雨林木风是啥)

雨林木风的创始人是陈年鑫先生。陈年鑫先生于1999年创立了雨林木风公司,其初衷是为满足中国市场对高品质、高性能电脑的需求。在陈年鑫先生的领导下,雨林木风以技术创新、产品质量和客户服务为核心价值,不断推...

aics6序列号永久序列号(aics6破解序列号)

关于AICS6这个版本,虽然是比较久远的版本,但是在功能上也是十分全面和强大的,作为一名平面设计师的话,AICS6的现有的功能已经能够应付几乎所有的设计工作了……到底AICC2019的功能是不是...

win7正在启动windows 卡住(win7正在启动windows卡住了 进入安全模式)
  • win7正在启动windows 卡住(win7正在启动windows卡住了 进入安全模式)
  • win7正在启动windows 卡住(win7正在启动windows卡住了 进入安全模式)
  • win7正在启动windows 卡住(win7正在启动windows卡住了 进入安全模式)
  • win7正在启动windows 卡住(win7正在启动windows卡住了 进入安全模式)
手机可以装电脑系统吗(手机可以装电脑系统吗怎么装)

答题公式1:手机可以通过数据线或无线连接的方式给电脑装系统。手机安装系统需要一定的技巧和软件支持,一般需要通过数据线或无线连接的方式与电脑连接,并下载相应的软件和系统文件进行安装。对于大部分手机用户来...