Backy Asked: 2023-03-04 05:34:53 +0800 CST2023-03-04 05:34:53 +0800 CST 2023-03-04 05:34:53 +0800 CST 附加到 awk 中的变量 772 使用时bash,我可以附加到一个变量+=。我想在awk. 我能用什么? rl="?(+)*([$dgt])?([.,])+([$dgt])" rl+="?([eE]?([-+])+([$dgt]))" awk 2 个回答 Voted Best Answer steeldriver 2023-03-04T05:53:33+08:002023-03-04T05:53:33+08:00 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) Gilles Quénot 2023-03-04T05:38:03+08:002023-03-04T05:38:03+08:00 不知道你的正则表达式尝试是什么意思,无论如何试试这个: $ awk '{var="foo"$1;print var}' <<< bar foobar
awk 中的字符串变量只需并排写入即可连接起来。所以:
(中间的空格是可选的)。
请参阅字符串连接。
顺便说一句,如果你试图将一个 shell 变量传递
$dgt
到你的 awk 程序中,不要那样做 --v dgt="$dgt"
在命令行上使用类似的东西,然后rl = sprintf("?(+)*([%s])?([.,])+([%s])", dgt, dgt)
将它写入字符串。您甚至可以考虑使用sprintf
来进行连接:不知道你的正则表达式尝试是什么意思,无论如何试试这个: