Как сравнить содержимое двух массивов?Как мы можем указать конкретные строки на одном из массивов, если условия удовлетворяют? - PullRequest
0 голосов
/ 09 мая 2018

у меня ${array1[@]}

Application_1007896 60
Application_8907897 50
Application_5678342 7
Application_1289764 9
Application_8907899 5
Application_8917899 21

и ${array2[@]}

Application_5678342
Application_1289764
Application_8907897
Application_5678342
Application_1289764

Как мы можем проверить, находится ли содержимое ${array2[@]} в ${array1[@]}. когда условие удовлетворяется, тогда должно быть в состоянии извлечь соответствующие значения (в которых условия удовлетворяют) из ${array1[@]} и суммировать их.

1 Ответ

0 голосов
/ 10 мая 2018

В приведенном ниже блоке кода предполагается, что второй массив имеет значение, и предполагается, что он будет возвращать только те записи, которые существуют в обоих массивах.

for entry_1 in "${array1[@]}" ; do
   for entry_2 in "${array2[@]}" ; do
       entry_1_split=(${entry_1// /})
       entry_2_split=(${entry_2// /})
       if [[ "${entry_1_split[0]}" == "${entry_2_split[1]}" ]] ; then
          echo "${entry_1_split[0}} $((${entry_1_split[1]}+${entry_2_split[1]))"
       fi
   done
done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...