Найти перекрытие / пересечение списков с bash

Скажем, у меня есть эти два “списка”:

#!/usr/bin/env bash git fetch origin; first_list=( ); second_list=( ); git branch --merged "remotes/origin/dev" | tr -d ' *' | while read branch; do first_list+=( "$branch" ); done git branch --merged HEAD | tr -d ' *' | while read branch; do second_list+=( "$branch" ); done 

Мне нужно создать третий список, который содержит пересечение элементов в первом и втором списках. Как я могу это сделать?

    2 Solutions collect form web for “Найти перекрытие / пересечение списков с bash”

    Использование ассоциативного массива в качестве помощника для отслеживания элементов в одном списке (в качестве ключей), а затем быстрая проверка элементов другого списка по следующим параметрам:

     #!/bin/bash list1=( 1 3 5 6 7 8 bumble bee ) list2=( 2 4 4 4 6 7 8 bee beer ) declare -A seen for item in "${list1[@]}"; do seen[$item]=1 done for item in "${list2[@]}"; do if [ -n "${seen[$item]}" ]; then intersection+=( "$item" ) fi done echo 'Intersection:' printf '\t%s\n' "${intersection[@]}" 

    При этом используются точные совпадения строк для сравнения элементов между двумя списками.

    Результат:

     Intersection: 6 7 8 bee 

    Как насчет

     for FN in ${first_list[@]}; do [[ ${second_list[@]} =~ $FN ]] && third_list+=($FN); done 
    Interesting Posts

    USB-сенсорный экран не работает с debian 3.8.13 (BeagleBone Black)

    grep – многострочный рисунок

    Как узнать об использовании процессора Intel и GPU в Linux?

    Как я могу получить скорость чтения / записи на жестком диске с использованием данных / proc / diskstats?

    Есть ли хороший способ шифрования и хранения почтового ящика, хотя он может быстро получить доступ и выполнить поиск?

    Как найти файлы, которые заполняют мой диск

    Уменьшите скорость вращения вентилятора ATI GPU с помощью драйвера с открытым исходным кодом Radeon

    В чем разница между vi и vim?

    Как сравнить столбцы одной строки в одном файле?

    Как я могу разрешить пользователю подавать файл другому пользователю?

    i3wm dmenu добавить файл .desktop

    Могу ли я выполнить совершенно новый процесс без исполняемого файла?

    Vi ключи в Xpdf?

    Slackware: печатать ужасный баннер

    Bash – Как использовать переменную в имени переменной

    Linux и Unix - лучшая ОС в мире.