awk的基本使用方法是什么

2023-08-28 4094阅读

awk的基本使用方法是什么 第1张

今天就跟大家聊聊有关awk的基本使用方法是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。awk是处理文本文件的一个应用程序,几乎所有

Linux

系统都自带这个程序。它依次处理文件的每一行,并读取里面的每一个字段。对于日志、CSV 那样的每行格式相同的文本文件,awk可能是最方便的工具。awk其实不仅仅是工具软件,还是一种编程语言。不过,本文只介绍它的命令行用法,对于大多数场合,应该足够用了。


一、基本用法

awk的基本用法就是下面的形式。上面示例中,demo.txt开发云主机域名是awk所要处理的文本文件。前面单引号内部有一个大括号,里面就是每一行的处理动作print $0。其中,print是打印命令,$0代表当前行,因此上面命令的执行开发云主机域名结果,就是把每一行原样打印出来。下面,我们先用标准输入(stdin)演示上面这个例子。上面代码中,print $0就是把标准输入this is a test,重新打印了一遍。awk会根据空格和制表符,将每一行分成若干字段,依次用$1、$2、$3代表第一个字段、第二个字段、第三个字段等等。上面代码中,$3代表this is a test的第三个字段a。下开发云主机域名面,为了便于举例,我们把/etc/passwd文件保存成demo.txt。这个文件的字段分隔符是冒号(:),所以要用-F参数指定分隔符为冒号。然后,才能提取到它的第一个字段。https://www.linuxprobe.com/basic-usage-awk.html

二、变量

除了$ + 数字表示某个字段,awk还提供其他一些变量。变量NF表示当前行有多少个字段,因此$NF就代表最后一个字段。$(NF-1)代表倒数第二个字段。上面代码中,print命令里面的逗号,表示输出的时候,两个部分之间使用空格分隔。变量NR表示当前处理的是第几行。上面代码中,print命令里面,如果原样输出字符,要放在双引号里面。awk的其他内置变量如下。

FILENAME:

当前文件名

FS:

字段分隔符,默认是空格和制表符。

RS:

行分隔符,用于分割每一行,默认是换行符。

OFS:

输出字段的分隔符,用于打印时分隔字段,默认为空格。

ORS:

输出记录的分隔符,用于打印时分隔记录,默认为换行符。

OFMT:

数字输出的格式,默认为%.6g

三、函数

awk还提供了一些内置函数,方便对原始数据的处理。函数toupper()用于将字符转为大写。上面代码中,第一个字段输出时都变成了大写。其他常用函数如下。

tolower():

字符转为小写。

length():

返回字符串长度。

substr():

返回子字符串。

sin():

正弦。

cos():

余弦。

sqrt():

平方根。

rand():

随机数。awk内置函数的完整列表,可以查看手册。

四、条件

awk允许指定输出条件,只输出符合条件的行。输出条件要写在动作的前面。请看下面的例子。上面代码中,print命令前面是一个正则表达式,只输出包含usr的行。下面的例子只输出奇数行,以及输出第三行以后的行。下面的例子输出第一个字段等于指定值的行。

五、if 语句

awk提供了if结构,用于编写复杂的条件。上面代码输出第一个字段的第一个字符大于m的行。if结构还可以指定else部分。看完上述内容,你们对awk的基本使用方法是什么有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注开发云行业资讯频道,感谢大家的支持。

本文从转载,原作者保留一切权利,若侵权请联系删除。

《awk的基本使用方法是什么》来自互联网同行内容,若有侵权,请联系我们删除!


    免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

    目录[+]