Tentando converter uma lista com vários significados

0

Estou tentando converter uma lista em outra usando uma lista de conversão, mas a lista de conversão tem vários significados e não sei como abordar isso. Por exemplo, eu tenho essa lista com apenas números:

1 4  
2 5  
3 6  
5 1

Eu tenho esta segunda lista com conversões (1 - > apple, etc):

1 apple  
2 blueberry  
2 banana  
3 orange  
4 pear  
5 cherry  
6 kiwi  
6 mango

Usando essa segunda lista de conversões, desejo alterar a lista de números para uma lista de frutas. Esta é minha saída desejada:

apple pear  
blueberry cherry  
banana cherry  
orange kiwi  
orange mango  
cherry apple

Como "2" tem mirtilo e banana, eu vejo duas linhas em vez da original. Esta conversão é possível com o bash?

    
por blin 26.07.2016 / 07:21

1 resposta

0
#!/bin/bash

while read index fruit
do
    data[$index]="${data[index]} $fruit"
done < fruit.txt

while read one two
do
    for fruit1 in ${data[$one]}
    do
        for fruit2 in ${data[$two]}
        do
            echo $fruit1 $fruit2
        done
    done
done < list.txt

Isso funciona da seguinte maneira: primeiro, leia o arquivo que contém as conversões ( fruit.txt ) na matriz data . Em seguida, leia o arquivo que contém duas colunas de números ( list.txt ) e use os números para procurar a fruta na matriz data . Como cada entrada pode conter mais de um tipo de fruta, repita todas as entradas.

    
por 26.07.2016 / 08:20

Tags