AWK是一种强大的文本处理工具,它提供了丰富的内置变量与函数,用于处理文本数据。本文将介绍一些常用的内置变量与函数,包括FS、NF以及一些常见的数学运算。
FS变量
FS变量(Field Separator)用于指定字段的分隔符。默认情况下,FS的值是空格或制表符。当对文本进行处理时,可以通过修改FS变量来指定不同的字段分隔符。
例如,假设我们有一个包含逗号分隔符的文本文件data.csv
:
姓名,年龄,性别
张三,25,男
李四,30,女
王五,28,男
在AWK中,可以通过修改FS变量为逗号来指定字段分隔符:
BEGIN {
FS = ","
}
{
print "姓名:" $1
print "年龄:" $2
print "性别:" $3
}
输出结果:
姓名:张三
年龄:25
性别:男
姓名:李四
年龄:30
性别:女
姓名:王五
年龄:28
性别:男
NF变量
NF变量(Number of Fields)用于指示当前记录(行)中字段的数量。它是一个只读变量,用于在处理文本时快速获取字段数量。
例如,假设我们有一个包含两个字段的文本文件:
apple orange
banana grape
可以通过在AWK中使用NF变量来打印每行的字段数量:
{
print "行号:" NR
print "字段数量:" NF
print "第一个字段:" $1
print "第二个字段:" $2
print "----------------------"
}
输出结果:
行号:1
字段数量:2
第一个字段:apple
第二个字段:orange
----------------------
行号:2
字段数量:2
第一个字段:banana
第二个字段:grape
----------------------
数学运算
AWK还提供了一些常见的数学运算函数,以便更方便地对文本数据进行计算和处理。
sqrt函数
sqrt(x)
函数用于计算给定数值x的平方根。例如,假设我们要计算1到10的平方根:
BEGIN {
for (i = 1; i <= 10; i++) {
print i, "的平方根是", sqrt(i)
}
}
输出结果:
1 的平方根是 1
2 的平方根是 1.41421
3 的平方根是 1.73205
4 的平方根是 2
5 的平方根是 2.23607
6 的平方根是 2.44949
7 的平方根是 2.64575
8 的平方根是 2.82843
9 的平方根是 3
10 的平方根是 3.16228
int函数
int(x)
函数用于返回不大于x的最大整数。例如,假设我们要取下述数据的整数部分:
3.14
2.718
5.5
可以在AWK中使用int函数进行处理:
{
print "原数值:" $1
print "整数部分:" int($1)
print "----------------------"
}
输出结果:
原数值:3.14
整数部分:3
----------------------
原数值:2.718
整数部分:2
----------------------
原数值:5.5
整数部分:5
----------------------
总结
本文介绍了AWK中的一些常用内置变量与函数,包括FS、NF以及一些常见的数学运算函数。通过理解和运用这些变量和函数,我们可以更加方便、高效地处理文本数据,提高工作效率。希望本文对你达到了帮助,谢谢阅读!
本文来自极简博客,作者:编程艺术家,转载请注明原文链接:AWK中的内置变量与函数:理解FS、NF等常用变量与数学运算