假设您有一个包含复杂过程的 AWK 程序文件:示例.awk。您想要分配变量的特定列,而不是当前记录的整行。
#!/usr/bin/awk -f
BEGIN {...}
... {...}
...
END {
...
var1 = ... # do something
print "var1 ... " var1
var2 = ⬛⬛⬛⬛⬛⬛
print "var2 ... " var2
}
请注意,它var1
与文件输入无关。从 shell 运行该程序:
awk -f ./example.awk ./text.txt
...
var1 ... I like chocolate cake
var2 ... chocolate
如本例所示,var2
字符串是第三个字段/列。在 UNIX shell 中,它可能相当于
var2=$(cut -d ' ' -f 3 <<< "$var1")
您将如何var2
在 AWK 中编写脚本?
答案1
awk -v f=3 '
END {
var1 = "I like chocolate cake"
n = split(var1, a)
var2 = a[f]
print var1
print var2
}
' /dev/null
I like chocolate cake
chocolate