Сравнение текстовых файлов: как отобразить строки, которые есть в первом, но нет во втором?
Всем привет! Есть два текстовых файла. Содержат имена файлов (по одному в строке, не повторяются). Порядок может отличаться.
Как найти строки, которые есть только в первом файле, но нет во втором (положение в файле неважно)
загоняем оба файла в ассоциативные массивы, проходим по первому массиву и смотрим чего нету во вотром
#!/bin/bash
declare -A map1 map2
IFS=$'\n'
while read line; do
map1["$line"]=1
done < /tmp/file1.txt
while read line; do
map2["$line"]=1
done < /tmp/file2.txt
for k in ${!map1[@]}; do
[[ "${map2[$k]}" ]] || echo $k
done