Простой способ проверить изменения символов в отчете NM

Я собираю свою библиотеку (программирование на C) с помощью Suse gcc компилятор, а затем я генерирую nm отчет этой библиотеки. Я должен сравнить отчет NM с библиотекой предыдущей версии, чтобы проверить, какие символы присутствуют и не присутствуют в библиотеке текущей версии.

nm libxxx0.1.a > nm_0.1.txt
nm libxxx0.2.a > nm_0.2.txt

Сейчас я просто сравниваю nm_0.1.txt а также nm_0.2.txt файлы с некоторым инструментом сравнения текста. Наряду с этим символом различий, я также получаю смещения различий. Я не беспокоюсь о смещениях.

Есть ли какая-либо команда (в окнах или suse), которая позволяет легко выделить только различия символов в отчете NM?

Примечание: сгенерированный отчет будет очень большим. Вручную открыть этот текстовый файл и использовать какой-либо инструмент для удаления первого столбца этого отчета NM - не простая задача для этого большого файла NM.

1 ответ

Решение

Это для Linux. Сначала вы должны подготовить и отсортировать вывод NM

nm -g libxxx0.1.a | awk '{print $3}' | sort -u >nm_0.1.txt
nm -g libxxx0.2.a | awk '{print $3}' | sort -u >nm_0.2.txt

Если вас интересуют все символы, пропустите -g и использовать cut вместо awk

nm libxxx0.1.a | cut -c20- | sort -u >nm_0.1.txt
nm libxxx0.2.a | cut -c20- | sort -u >nm_0.2.txt

Тогда вы можете показать различия с diff

diff -U0 nm_0.1.txt nm_0.2.txt

или же comm

comm -3 nm_0.1.txt nm_0.2.txt
Другие вопросы по тегам