gpt4 book ai didi

arrays - 两个 bash 数组中的模式匹配

转载 作者:太空宇宙 更新时间:2023-11-04 09:21:56 28 4
gpt4 key购买 nike

我发现了很多关于此的帖子,但无法将这些帖子组合起来解决我的问题。所以说我有两个数组:

array1=( adir bdir anicedir )
array2=( adir anice )

我想要这样的第三个数组

array3=( adir anicedir )

更具体地说,如果 array2 中第 i 个元素的前 5 个字符与 array1 中任何元素的前 5 个字符匹配,则替换 array2[i ]array1[i]

最佳答案

没有什么特别短的,因为 bash 不是一种数据处理语言。您需要使用循环。

array1=( adir bdir anicedir )
array2=( adir anice )
array3=()

for val2 in "${array2[@]}"; do
for val1 in "${array1[@]}"; do
if [[ ${val1:0:5} == "${val2:0:5}" ]]; then
array3+=("$val1")
break
fi
done
done

引用 == 的右侧可确保执行文字字符串比较,而不是模式匹配。

关于arrays - 两个 bash 数组中的模式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40912295/

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