【发布时间】:2017-08-04 16:36:34
【问题描述】:
我正在使用其他人的 ksh93 脚本以打印到标准输出的格式返回的数据。根据我给它的标志,他们的脚本为我提供了我的代码所需的信息。它就像一个由空格分隔的列表,因此程序的运行格式为:
"1 3 4 7 8"
"First Third Fourth Seventh Eighth"
对于我正在进行的工作,我需要能够匹配每个输出的条目,以便我可以按以下格式打印信息:
1:First
3:Third
4:Fourth
7:Seventh
8:Eighth
我需要做的不仅仅是打印数据,我只需要能够访问每个字符串中的信息对。尽管字符串的实际内容可以是任意数量的值,但我从运行另一个脚本得到的两个字符串的长度始终相同。
我想知道是否存在一种同时迭代两者的方法,类似于:
str_1=$(other_script -f)
str_2=$(other_script -i)
for a,b in ${str_1},${str_2} ; do
print "${a}:${b}"
done
这显然不是正确的语法,但我一直无法找到使其工作的方法。有没有办法同时迭代两者?
我知道我可以先将它们转换为数组,然后按数字元素进行迭代,但如果有办法同时迭代两者,我想节省转换它们的时间。
【问题讨论】:
-
korn shell 中的数组条目数有限,但对于这种类型的需求来说很方便。除了使用 awk 或其他工具外,我只能想到长度相等的数组并对其进行迭代。
标签: ksh