awk 示例中数组索引 [fp+0] 的含义是什么?

问题描述 投票:0回答:1

在此页面 https://www.gnu.org/software/gawk/manual/html_node/More-CSV.html,让此示例在 awk 上使用 csv 文件。

这个例子效果很好!

但是,我无法理解这段代码中的

fpat+0

BEGIN {
     fp[0] = "([^,]+)|(\"[^\"]+\")"
     fp[1] = "([^,]*)|(\"[^\"]+\")"
     fp[2] = "([^,]*)|(\"([^\"]|\"\")+\")"
     FPAT = fp[fpat+0]
}

这意味着什么?

linux awk
1个回答
3
投票

从OP的链接我们看到

gawk
脚本是如何调用的:

$ gawk -v fpat=2 -f test-csv.awk sample.csv

如果用户没有提供

-v fpat=...
子句会发生什么?

(g)awk
中,向未定义的变量添加零(例如,
fpat+0
)将生成
0

$ awk 'BEGIN {print fpat+0}'
0

关于引用的

gawk
代码,当
fpat+0
生成
0
时,我们最终使用
fp[0]
作为 default 模式。

© www.soinside.com 2019 - 2024. All rights reserved.