我已经看到了很多在bash中循环遍历的答案,这样您不仅可以获取索引,还可以获取该索引的变量 at 。例如
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个索引。