在此页面 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]
}
这意味着什么?
从OP的链接我们看到
gawk
脚本是如何调用的:
$ gawk -v fpat=2 -f test-csv.awk sample.csv
如果用户提供以下其中一项,会发生什么:
-v fpat=...
条款-v fpat=some_non_numeric
fpat+0
通过在两种情况下生成 0
来处理这两种情况,这又意味着 fp[0]
成为 default 模式。