美文网首页
Linux|了解如何使用 awk 内置变量

Linux|了解如何使用 awk 内置变量

作者: 数据科学工厂 | 来源:发表于2024-05-08 13:35 被阅读0次

引言

当我们揭开 Awk 功能部分时,我们将介绍 Awk 中内置变量的概念。您可以在 Awk 中使用两种类型的变量:用户定义的变量和内置变量。

内置变量的值已经在 Awk 中定义,但我们也可以仔细更改这些值,内置变量包括:

  1. FILENAME :当前输入文件名(不要更改变量名)
  2. FR :当前输入行号(即输入行1、2、3……以此类推,不要更改变量名)
  3. NF :当前输入行中的字段数(不要更改变量名称)
  4. OFS :输出字段分隔符
  5. FS :输入字段分隔符
  6. ORS:输出记录分隔符
  7. RS : 输入记录分隔符

实战

让我们继续说明上面一些 Awk 内置变量的使用:

要读取当前输入文件的文件名,可以使用 FILENAME 内置变量,如下所示:

awk ' { print FILENAME } ' ~/domains.txt 

您将意识到,每个输入行都会打印出文件名,这是当您使用 FILENAME 内置变量时 Awk 的默认行为。

使用 NR 来计算输入文件中的行(记录)数,请记住,它还会计算空行,正如我们将在下面的示例中看到的那样。

当我们使用cat命令查看domains.txt文件时,它包含14行文本和2行空:

cat ~/domains.txt
awk ' END { print "Number of records in file is: ", NR } ' ~/domains.txt 

要计算记录或行中的字段数,我们使用 NR 内置变量,如下所示:

cat ~/names.txt
awk '{ print "Record:",NR,"has",NF,"fields" ; }' ~/names.txt

接下来,您还可以使用 FS 内置变量指定输入字段分隔符,它定义 Awk 如何将输入行划分为字段。

FS 的默认值是空格和制表符,但我们可以将 FS 的值更改为任何字符,以指示 Awk 相应地划分输入行。

有两种方法可以做到这一点:

  1. 一种方法是使用 FS 内置变量
  2. 第二个是调用 -F Awk 选项

考虑Linux系统上的文件/etc/passwd,该文件中的字段使用:字符分隔,因此当我们想要过滤掉某些字段时,我们可以将其指定为新的输入字段分隔符,如下例所示:

我们可以使用 -F 选项,如下所示:

awk -F':' '{ print $1, $4 ;}' /etc/passwd

或者,我们还可以利用 FS 内置变量,如下所示:

awk ' BEGIN {  FS=“:” ; }  { print $1, $4  ; } ' /etc/passwd

要指定输出字段分隔符,请使用 OFS 内置变量,它定义如何使用我们使用的字符分隔输出字段,如下例所示:

awk -F':' ' BEGIN { OFS="==>" ;} { print $1, $4 ;}' /etc/passwd

在本文中,我们探讨了使用带有预定义值的 Awk 内置变量的想法。但是我们也可以更改这些值,不过,不建议这样做,除非您知道自己在做什么,并且有足够的理解。

相关文章

  • 1、linux awk 内置变量使用介绍

    awk是个优秀文本处理工具,可以说是一门程序设计语言。下面是awk内置变量。 一、内置变量表 属性说明 $0当前记...

  • 19-三剑客之awk补充

    创建环境: 一、awk的参数: -F 指定分隔符-v 修改或创建awk内置变量 二、内置变量 三、过滤(awk中什...

  • awk的介绍和使用

    1 awk的介绍 2 awk 的变量 需要使用 -v 指定 3 控制语句 4 数组 5 内置函数

  • 文本处理之awk

    awk内置变量 awk有许多内置变量用来设置环境信息,这些变量可以被改变,下面给出了最常用的一些变量。 ARGC ...

  • awk基础02-变量-分隔符-数组

        对任意一门语言都会有变量,在awk中变量分为内置变量和自定义变量。 内置变量:就是预先在awk中定义好的,...

  • 【现学现忘&Shell编程】— 34.AWK编程之awk内置变量

    1、awk内置变量 awk内置变量作用$0代表目前awk所读入的整行数据。我们已知awk是一行一行读入数据的,$0...

  • Linux三剑客(awk-3)-awk变量

    本文取自朱双印——awk从放弃到入门(3):awk变量 对于awk来说,变量又分为内置变量和自定义变量,输入分隔符...

  • awk+sed+vim等技巧

    awk技巧 awk的内置变量: FS:(Input Field Separator)表示awk所认知的分隔符 OF...

  • awk巩固扩展

    awk 中使用外部shell变量 选项-v可以实现使用外部变量。 如:A=44echo "ABCD" | awk ...

  • awk命令详解

    语法格式 内置变量 外部变量传给awk 打开外部文件 调用外部应用程序 其他示例

网友评论

      本文标题:Linux|了解如何使用 awk 内置变量

      本文链接:https://www.haomeiwen.com/subject/rbzdfjtx.html