在谷歌和stackoverflow上,我都没有找到一个好的简单回答这个问题的方法。
基本上,我有两个数组,我需要将它们并排打印到终端上,因为其中一个数组是术语列表,另一个数组是术语定义。 有人知道一个好的方法吗?
先行致谢。
这是一个“一行代码”:
paste <(printf "%s\n" "${terms[@]}") <(printf "%s\n" "${defs[@]}")
paste -d' ' <(printf "%-12.12s\n" "${terms[@]}") <(printf "%s\n" "${defs[@]}")
这将把术语补齐或缩短到 12 个字符,然后在两列之间加入空格而不是制表符 (-d' '
)。
假定两个数组长度相同,您可以使用C风格的for循环来完成此操作:
for ((i=0; i<=${#arr1[@]}; i++)); do
printf '%s %s\n' "${arr1[i]}" "${arr2[i]}"
done
i in "${!arr1[@]}"
? - oguz ismail