gpt4 book ai didi

Bash:迭代变量列表

转载 作者:行者123 更新时间:2023-12-05 06:29:48 26 4
gpt4 key购买 nike

我有一个组列表,其中我有人名:

group1="Kyliane Justine Noemie Marion"
group2="Julie Lilou"
group3="Lena Celeste"

等等……

我想检查一个组的人的名字在根据组号命名的文件中出现了多少次(例如:group1.txt)。

所以我有:

for person in $group1
do
number=$(grep -oi "$person" /path/group1.txt | wc -l)
echo $person "wrote" $number "times."
done

很好用。

但是,我想要的是检查每个组文件中的每个组成员,不仅是/path/group1.txt 中的 $group1,还有/path/group2.txt 中的 $group2,等等。 . 我知道我可以复制粘贴我的代码,只需将 group1 更改为 group2、group3 等。但我确信有一种更快的方法,尤其是因为我有 12 个组!我是 bash 的初学者,我不知道该怎么做。

非常感谢您的帮助。

最佳答案

使用数组而不是单独的变量。

groups=("Kyliane Justine Noemie Marion" "Julie Lilou" "Lena Celeste")
i=1
for group in "${groups[@]}"
do
for person in $group
do
number=$(grep -oi "$person" /path/group$i.txt 2>/dev/null | wc -l)
echo $person "wrote" $number "times."
done
i=$((i+1))
done

作为一般规则,每当您发现自己创建具有顺序名称的变量时,您可能应该使用数组或类似的数据结构。这适用于大多数编程语言。

关于Bash:迭代变量列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53180561/

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