在 `awk` 命令中,动作 `{ commands }`

简介: 在 `awk` 命令中,动作 `{ commands }`

awk 命令中,动作 { commands } 是一个核心组成部分,用于定义当满足特定条件或模式时所执行的命令序列。基本结构如下:

awk 'pattern { commands }' file(s)
  • pattern(可选):是一个条件表达式,可以是正则表达式、数值比较或者其他模式匹配规则。如果省略 pattern,则对每一行输入都会执行 { commands } 中的命令。

  • { commands }:这是动作块,其中包含了一系列 awk 语句,这些语句将在每个满足 pattern 的输入行上执行。这里的命令可以包括变量赋值、字符串操作、算术运算、输出控制等。

例如:

awk '/root/ { print $1, $6 }' /etc/passwd

在这个例子中,/root/ 是 pattern,表示只对包含 "root" 字符串的行执行动作。动作块 { print $1, $6 } 表示打印当前行的第一个和第六个字段(假设字段由冒号分隔)。

另外,awk 还有 BEGIN 和 END 动作块:

  • BEGIN { commands }: 在处理任何输入文件之前执行,通常用于初始化变量或者输出表头等。

  • END { commands }: 在所有输入文件处理完毕后执行,常用来做总结性计算或输出。

例如:

awk 'BEGIN { FS=":"; OFS="," } { print $1, $6 } END { print "Total lines:", NR }' /etc/passwd

在这个例子中,BEGIN 动作块设置了输入字段分隔符(FS)为冒号,并设置了输出字段分隔符(OFS)为逗号。主体动作块打印每行的第一和第六个字段,而 END 动作块在所有行处理完后打印总行数(NR)。

目录
相关文章
|
Linux
echo显示Linux命令执行的结果
echo显示Linux命令执行的结果
|
5月前
|
Shell Linux Perl
shell 编程中 awk ,wc ,$0,$1 等 命令的使用总结
shell 编程中 awk ,wc ,$0,$1 等 命令的使用总结
137 0
|
7月前
|
Perl
在 `awk` 命令中,`BEGIN { commands }`
在 `awk` 命令中,`BEGIN { commands }`
41 2
|
Shell
shell:使用command判断一个命令是否存在
shell:使用command判断一个命令是否存在
373 0
|
弹性计算 Shell Linux
3天玩转shell--6.sed 和grep用法
本文将通过shell代码示例,简单通俗的讲解shell。通过执行代码和运行结果反向掌握shell编程方法。准备一台低配的阿里云ECS Linux环境,跟着教程走起,本文比较适合shell小白。
199 0
|
Perl
在awk中执行外部命令
在awk中执行外部命令 1、借助system/getline删除 awk '{cmd="rm "$0;system(cmd)}' filename awk '{cmd="rm "$0;cmd|getline }' filename man awk里面有关于getline的说明。
2142 0
|
关系型数据库 Shell Perl