gpt4 book ai didi

arrays - 如何确定 $var 是否作为完整单词存在于数组中

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:13:36 24 4
gpt4 key购买 nike

我有以下问题:我有一个数组 array=(test3 testtest) .现在我有一个变量 var我想测试 var 是否不存在于数组中,但只匹配完整的单词:示例:

test3 would match
test not

我已经有了以下代码,它可以用于查找出现次数,但不能仅用于完整单词,test找到匹配项: if ! [[ ${array[*]} =~ test ]]; then echo "Not in"; fi我再次尝试实现此目的,但使用此代码 test3也没有找到: if ! [[ ${array[*]} =~ \<test\> ]]; then echo "Not in"; fi我想实现这一点,如果可能的话,没有任何循环。所以我的问题是:没有任何循环就可以做到这一点吗?如果不是,我怎么能用循环来做到这一点?我的问题是,这个 if 语句已经在现有循环中,为 var 设置值.所以如果我有一个循环中的循环,我认为这不是很好。

最佳答案

我不完全明白你在问什么,但下面的代码对你有帮助吗?它搜索 array0 中的项目并将其与 array1

中的整个单词匹配
#!/bin/bash
array0=(test3 testtest)
array1=(testtest bla test3)

for i in "${array1[@]}"; do
echo -ne "$i: \t"
if ! [[ ${array0[*]} =~ ([[:space:]]|^)$i([[:space:]]|$) ]]; then
echo "Not in";
else
echo "Yes in";
fi
done
exit 0

要匹配整个单词,您必须用 ([[:space:]]|^)([[:space:]]|$)< 包裹字符串。这允许单词用空格包裹,或者存在于行的开头 (^) 或结尾 ($)。

关于arrays - 如何确定 $var 是否作为完整单词存在于数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57183376/

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