bash + 如何在同一行中组合输出值

bash + 如何在同一行中组合输出值

我们有两个数组变量:

linux_machines

磁盘

printf "%s\n" ${linux_machines[*]}

neptun1
neptun2
neptun3

printf "%d\n" ${disks_num[*]} 

4
5
5

如何组合两个数组值,以便得到以下预期结果

neptun1 ..... 4
neptun2 ..... 5
neptun3 ..... 5

答案1

使用bash:

for i in ${!linux_machines[@]}; do echo "${linux_machines[$i]} ..... ${disks_num[$i]}"; done

输出:

海王星1 ..... 4
海王星2 ..... 5
海王星3 ..... 5

我假设这两个数组在字段编号中都没有间隙。

答案2

paste+printf解决方案:

linux_machines=("neptun1" "neptun2" "neptun3")
disks=(4 5 5)
paste -d' ' <(printf "%s .....\n" "${linux_machines[@]}") <(printf "%d\n" "${disks[@]}")

输出:

neptun1 ..... 4
neptun2 ..... 5
neptun3 ..... 5

答案3

使用下面的方法来实现相同的目的。


for i in 0 1 2; do echo ${linux_machines[$i]]}" ...... "${disks[$i]}; done 

输出

neptun1......4
neptun2......5
neptun3......5

相关内容