使用时,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