【发布时间】:2022-01-21 17:01:08
【问题描述】:
我指的是
answer to: GNU awk: accessing captured groups in replacement text
但是? 正则表达式匹配的量词
我想制作if 语句或三元运算符?: 或更优雅的东西,这样如果用\\1 反向引用的正则表达式组返回非空字符串,则一个任意字符串(不排除\\1)被插入,如果它返回空字符串,则插入其他任意字符串。我的示例在捕获组返回非空字符串时有效,但在反向引用为空时不返回预期的分支“B”。如何根据反向引用值进行条件分支?
echo abba | awk '{ print gensub(/a(b*)?a/, "\\1"?"A":"B", "g", $0)}'
【问题讨论】:
-
这是行不通的,因为
"\\1"的评估将始终为真,非空字符串。
标签: if-statement awk conditional-operator backreference