通常在循环中获取变量时,都只能获取空白符分割的单个字符串,例如:
var1="v1 v2 v3 v4 v5"
在for中只能每次获取v1或者v2这种单个字符串,如果我们有一组字符串对,想同时获取两个字符串要怎么处理呢,直接使用in的方式肯定是不行的,这里需要先对字符串对做一个处理,增加一个显示的分隔符,例如
var1="v1 k1; v2 k2; v3 k3"
通过这种方式处理之后就可以使用awk来获取成对的字符串了:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
#获取总的字符对数量 total=$(echo $var1 | awk -F';' '{print NF}') for a in `seq 1 $total` do match=$(echo $var1 | awk -F';' -v line=$a 'i=line{print $i}') echo $match done #输出结果如下: v1 k1 v2 k2 v3 k3 |