変換リストを使用してあるリストを別のリストに変換しようとしていますが、変換リストにはいくつかの意味があり、それを処理する方法がわかりません。たとえば、数字のみを含む次のリストがあります。
1 4
2 5
3 6
5 1
変換(1 - > appleなど)を含む2番目のリストがあります。
1 apple
2 blueberry
2 banana
3 orange
4 pear
5 cherry
6 kiwi
6 mango
2番目の変換リストを使用して数値リストをフルーツリストに変更したいと思います。これが私が望む結果です:
apple pear
blueberry cherry
banana cherry
orange kiwi
orange mango
cherry apple
「2」にはブルーベリーとバナナの両方が含まれているため、元の行の代わりに2つの行が表示されます。 bashにこの変換は可能ですか?
ベストアンサー1
#!/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
仕組みは次のとおりです。まずfruit.txt
、変換()を含むファイルを配列に読み込みますdata
。次に、2つの数字列()を含むファイルを読み取り、list.txt
この数字を使用して配列内の果物を見つけますdata
。各項目には複数の果物の種類を含めることができるため、すべての項目を繰り返します。