bash + como combinar valores de saída na mesma linha

3

temos duas variáveis de matriz:

linux_machines

discos

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

neptun1
neptun2
neptun3

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

4
5
5

como combinar os valores de arrays para obter os resultados esperados a seguir

neptun1 ..... 4
neptun2 ..... 5
neptun3 ..... 5
    
por yael 26.12.2017 / 10:15

3 respostas

3
Solução

paste + printf :

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

A saída:

neptun1 ..... 4
neptun2 ..... 5
neptun3 ..... 5
    
por 26.12.2017 / 10:29
5

Com bash:

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

Saída:

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

Suponho que nenhum dos arrays tenha lacunas na numeração de campos.

    
por 26.12.2017 / 10:42
0

Usado abaixo do método para alcançar o mesmo.

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

saída

neptun1......4
neptun2......5
neptun3......5
por 27.12.2017 / 07:28