首页 > 解决方案 > Bash遍历数组 - 获取索引

问题描述

我已经看到了许多在 bash 中循环遍历数组的答案,这样您不仅可以获得索引,还可以获得该索引的变量。例如

for i in "${!foo[@]}"; do 
  printf "%s\t%s\n" "$i" "${foo[$i]}"
done

但是,对于我的变量foo,它被定义为:

foo=$(< varlist.txt)

其中 varlist.txt 是一个简单的 10 行文本文件,每行包含一个 4 个字母的代码。当我尝试上述方法时,输出不匹配。我在这里想念什么?

例如:

vi varlist.txt

 QOP1
 QOP2
 LMA1
 LMA2
 NKO1
 NKO2
 POZ1
 POZ2
 CCS1
 CCS2

vi file_to_test.txt

 #text
 #more header text
 POZ1
 CCS2

输出应该是:

 7 POZ1
 10 CCS2

因为这些是 varlist 文件中的第 7 个和第 10 个索引。

标签: bashloopsindexingmatch

解决方案


推荐阅读