gpt4 book ai didi

arrays - 将字符串直接拆分为数组

转载 作者:行者123 更新时间:2023-12-04 15:08:07 25 4
gpt4 key购买 nike

假设我想将一个字符串传递给 awk这样一旦我将它拆分(在模式上),子字符串就成为关联数组的索引(而不是值)。

像这样:

$ awk -v s="A:B:F:G" 'BEGIN{ # easy, but can these steps be combined?
split(s,temp,":") # temp[1]="A",temp[2]="B"...
for (e in temp) arr[temp[e]] #arr["A"], arr["B"]...
for (e in arr) print e
}'
A
B
F
G

是否有 awkism 或 gawkism 允许字符串 s直接拆分为其组件,这些组件成为 arr 中的索引条目?

原因是(大图)是我想要这样的东西(伪 awk):
awk -v s="1,4,55" 'BEGIN{[arr to arr["1"],arr["5"],arr["55"]} $3 in arr {action}'

最佳答案

不,没有比以下更好的方法将分隔的子字符串映射到数组索引:

split(str,tmp); for (i in tmp) arr[tmp[i]]

FWIW,如果您不喜欢这种方法来执行最终伪代码的操作:
awk -v s="1,4,55" 'BEGIN{split(s,tmp,/,/); for (i in tmp) arr[tmp[i]]} $3 in arr{action}'

那么获得相同行为的另一种方法是
awk -v s=",1,4,55," 'index(s,","$3","){action}'

关于arrays - 将字符串直接拆分为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42146510/

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