阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

linux下 awk内置变量使用介绍

33次阅读
没有评论

共计 1455 个字符,预计需要花费 4 分钟才能阅读完成。

导读 我们将逐渐揭开 awk 功能的神秘面纱,在本节中,我们将介绍 awk 内置 built-in 变量的概念。你可以在 awk 中使用两种类型的变量,它们是:用户自定义 user-defined 变量和内置变量。

linux 下 awk 内置变量使用介绍

我们将逐渐揭开 awk 功能的神秘面纱,在本节中,我们将介绍 awk 内置 built-in 变量的概念。你可以在 awk 中使用两种类型的变量,它们是:用户自定义 user-defined 变量和内置变量。awk 内置变量已经有预先定义的值了,但我们也可以谨慎地修改这些值.

awk 内置变量包括:
  • FILENAME : 当前输入文件名称
  • NR : 当前输入行编号 (是指输入行 1,2,3……等)
  • NF : 当前输入行的字段编号
  • OFS : 输出字段分隔符
  • FS : 输入字段分隔符
  • ORS : 输出记录分隔符
  • RS : 输入记录分隔符
FILENAME :

让我们继续演示一些使用上述 awk 内置变量的方法,想要读取当前输入文件的名称,你可以使用 FILENAME 内置变量,如下:$ awk ‘ {print FILENAME} ‘ ~/domains.txt

linux 下 awk 内置变量使用介绍

你会看到,每一行都会对应输出一次文件名,那是你使用 FILENAME 内置变量时 awk 默认的行为。我们可以使用 NR 来统计一个输入文件的行数 (记录),谨记:它也会计算空行,正如我们将要在下面的例子中看到的那样。输出文件内容 当我们使用 cat 命令查看文件 domains.txt 时,会发现它有 14 行文本和 2 个空行:$ cat ~/domains.txt

linux 下 awk 内置变量使用介绍

awk 统计行数:
$ awk 'END {print"Number of records in file is: ", NR}' ~/domains.txt

linux 下 awk 内置变量使用介绍

awk 统计文件中的字段数:
$ awk '{"Record:",NR,"has",NF,"fields";}' ~/names.txt

 linux 下 awk 内置变量使用介绍

FS 内置变量:

你也可以使用 FS 内置变量指定一个输入文件分隔符,它会定义 awk 如何将输入行划分成字段。FS 默认值为“空格”和“制表符”,但我们也能将 FS 值修改为任何字符来让 awk 根据情况切分输入行。有两种方法可以达到目的:第一种方法是使用 FS 内置变量;第二种方法是使用 awk 的 -F 选项。来看 Linux 系统上的 /etc/passwd 文件,该文件中的各字段是使用 冒号 (:) 分隔的,因此,当我们想要过滤出某些字段时,可以将冒号 (:) 指定为新的输入字段分隔符,awk 过滤密码文件中的各字段 . 我们可以使用 -F 选项,如下:$ awk -F’:’ ‘{print $1, $4 ;}’ /etc/passwd

linux 下 awk 内置变量使用介绍

此外,我们也可以利用 FS 内置变量,如下:$ awk ‘ BEGIN {FS=“:”;} {print $1, $4 ;} ‘ /etc/passwd

linux 下 awk 内置变量使用介绍

使用 OFS 内置变量:

使用 OFS 内置变量来指定一个用于输出的字段分隔符,它会定义如何使用指定的字符分隔输出字  段 使用 awk 输出的分隔符:   $ awk -F’:’ ‘ BEGIN {OFS=”==>” ;} {print $1, $4 ;}’ /etc/passwd

linux 下 awk 内置变量使用介绍

在本节中,我们已经学习了使用含有预定义值的 awk 内置变量的理念。但我们也能够修改这些值,虽然并不推荐这样做,除非你明白自己在做什么,并且充分理解 (这些变量值)。

此后,我们将继续学习如何在 awk 命令操作中使用 shell 变量,所以,请继续关注我们。

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-24发表,共计1455字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中