Если вы готовы к чему-то быстрому и грязному (не то, что я выпустил бы в производство, но, конечно, хорошо для моих собственных целей):
for key in $(cat develop1.txt qa1.txt | awk '{print $1}' | sort -u) ; do
devval=$(grep "^${key} " develop1.txt | awk '{print $2}')
qa1val=$(grep "^${key} " qa1.txt | awk '{print $2}')
if [[ "${devval}" != "${qa1val}" ]] ; then
echo "$key: dev=[${devval}], qa=[${qa1val}]"
fi
done
Первая строка извлекает все уникальные ключи из обоихфайлы в список (не будет работать, если у ваших ключей есть пробелы, но это может затруднить реализацию какого-либо решения, и здесь это не так).
Вторая и третья строки простополучить значения для каждого ключа из двух файлов.
Затем оператор if
выводит ключ и два значения, но только там, где значения различаются.
Не красиво, даже неТщательно протестировано, но может быть адекватным для ваших целей.Вы должны следить за граничными случаями, например, вероятность того, что ключ может существовать несколько раз в файле, или когда ключ может отсутствовать в начале строки.