附加到 awk 中的变量

附加到 awk 中的变量

使用时,bash我可以使用 附加到变量+=。我想在 中执行类似操作awk。我可以使用什么?

  rl="?(+)*([$dgt])?([.,])+([$dgt])"
  rl+="?([eE]?([-+])+([$dgt]))"

答案1

awk 中的字符串变量只需并排书写即可连接起来。因此:

rl="?(+)*([$dgt])?([.,])+([$dgt])"
rl = rl "?([eE]?([-+])+([$dgt]))"

(中间的空格是可选的)。

字符串连接


顺便说一句,如果您尝试将 shell 变量传递$dgt到 awk 程序中,请不要这样做 --v dgt="$dgt"在命令行上使用类似的东西,然后rl = sprintf("?(+)*([%s])?([.,])+([%s])", dgt, dgt)将其写入字符串。您甚至可以考虑使用sprintf来进行连接:

rl = sprintf("?(+)*([%s])?([.,])+([%s])", dgt, dgt)
rl = sprintf("%s?([eE]?([-+])+([%s]))", rl, dgt)

答案2

不知道你的正则表达式尝试什么,无论如何尝试这个:

$ awk '{var="foo"$1;print var}' <<< bar
foobar

相关内容