awk循环处理

简介: awk循环处理

awk中,循环处理主要涉及两种类型的循环:传统的for循环和隐式的记录遍历。

1. for 循环

a) 初始化-测试-递增型 for 循环:

类似于其他编程语言中的for循环,Awk也支持初始化、条件测试和递增操作的循环结构。例如,计算1到10的整数平方:

#!/usr/bin/awk -f
BEGIN {
    for (i = 1; i <= 10; i++) {
        print i, "to the second power is", i * i;
    }
}

b) 遍历数组的 for 循环:

你还可以使用for循环遍历数组元素:

{
    # 假设有一个数组array
    split("apple banana cherry", array)
    for (i in array) {
        print "Element at index " i " is ", array[i]
    }
}

2. 隐式记录遍历

在Awk中,默认情况下每一行(或记录)都会被当作一个循环来处理。当你编写Awk脚本时,即使没有明确声明循环,Awk也会逐行读取输入文件或者标准输入,并对每一行执行指定的动作:

# 对于每一行($0代表当前行)
{
    # 执行某些操作
    print $0
}

这个过程实际上就是一个循环,只不过它不需要显式定义。你可以在花括号内放置任何需要对每一行执行的命令。

示例结合实际应用:

例如,在处理日志文件时,可以利用Awk的内置循环特性:

# 分析日志文件,打印出所有ERROR级别的行及其发生时间
awk '/ERROR/ {print "Error occurred at:", $1, $2}' logfile.log

在这个例子中,Awk会自动一行接一行地读取日志文件,当遇到包含"ERROR"的行时,执行打印操作。

目录
相关文章
|
10月前
|
Perl
在 `awk` 中,for 循环
在 `awk` 中,for 循环
763 5
|
Perl C语言
awk函数
1、内置数学函数: 名称 返回值 atan2(x,y) y,x范围内的余切 cos(x) 余弦函数 exp(x) 求幂 int(x) 取整 log(x) 自然对数 sin(x) 正弦函数 sqrt(x) 平方根 2、内建函数 字符串函数 sub(regular expression,substitution string); sub(regular expression,substitution string,target string); length(string) 该函数返回字符串的长度。
770 0
|
Perl 机器学习/深度学习 Windows
|
人工智能 BI Perl
|
Shell Perl
awk详解 数组
第1章 awk命令基础 1.1 awk命令执行过程 1、如果BEGIN 区块存在,awk执行它指定的动作。 2、awk从输入文件中读取一行,称为一条输入记录。如果输入文件省略,将从标准输入读取 3、awk将读入的记录分割成字段,将第1个字段放入变量$1中,第2个字段放入$2,以此类推。
1604 0
|
Perl 存储 索引