在寻找正确修剪文本字符串的快速方法时,我发现了以下 wiki 页面:
在关于 AWK 的章节中,它给出了 2 组示例:
ltrim(v) = gsub(/^[ \t]+/, "", v)
rtrim(v) = gsub(/[ \t]+$/, "", v)
trim(v) = ltrim(v); rtrim(v)
或者
function ltrim(s) { sub(/^[ \t]+/, "", s); return s }
function rtrim(s) { sub(/[ \t]+$/, "", s); return s }
function trim(s) { return rtrim(ltrim(s)); }
下面的示例完全熟悉并且运行良好,但第一个示例看起来与我在 20 年的 AWK 编程中看到的任何内容都不同。它看起来是一种在一行中定义和使用函数的非常有用的快速方法。我无法让这种语法在 GNU Awk 3.1.5 中工作 - 那么它是在更新版本中引入的吗?
如果有人熟悉这种语法,我将不胜感激一个真实的工作示例。