awk 局部变量

示例

AWK语言不直接支持局部变量函数。但是,通过向函数添加额外的参数来模拟它们很容易。传统上会在这些变量之前加上a前缀,_以表明它们不是实际参数。

我们通过定义single_quote在字符串周围添加单引号的函数的定义来说明这种技术:

# single_quote(TEXT)
#  Return a string made of TEXT surrounded by single quotes

function single_quote(text, _quote) {
  _quote = sprintf("%c", 39)
  return sprintf("%s%s%s", _quote, text, _quote);
}

使用awk的简单方法sprintf("'%s'", text)会导致实际问题,因为awk脚本通常作为单引号传递给awk程序。