Простой способ проверить изменения символов в отчете 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