gpt4 book ai didi

awk - 将数组元素替换为正则表达式语句/变量名

转载 作者:行者123 更新时间:2023-12-04 14:21:40 25 4
gpt4 key购买 nike

一段时间以来一直想知道这在 AWK 中是否可行,但过去一直在解决这个问题。

下面我用一年中的 3 个月初始化一个数组...为了便于阅读,我省略了其他 9 个月。然后这些月份在 if 语句中用作正则表达式的一部分,但 AWK 不喜欢它。我似乎无法在 awk/gawk 手册中找到任何关于这种语义的内容……我真的坚持重复相同的代码 12 次吗?也可以在循环中使用 arr[i] 作为变量名的子串吗?我在下面编写了伪代码以了解我要完成的工作。我知道这在 SNOBOL 中是可行的 ;-) 谢谢!

  BEGIN {   
arr[0] = "AUG"
arr[1] = "SEP"
arr[2] = "OCT"
}
{
for(i in arr)
{
if($1 ~ /arr[i]/)
{
#Controls flows into here if $1 matches AUG, SEP, OCT
#Furthermore, pretend I want to intialize a variable like AUGseen:
arr[i]seen = 1
}
}
}

如果这些事情中的任何一个是可行的,我将非常感谢您的指点!

最佳答案

您可以对动态正则表达式使用匹配

if(match($1, arr[i]))

关于awk - 将数组元素替换为正则表达式语句/变量名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3559067/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com