Как я могу различить 2 файла, игнорируя при этом различия в шестнадцатеричных значениях внутри? - PullRequest
0 голосов
/ 30 июня 2018

У меня 2 файла, это разные версии одного и того же. Однако одно имеет шестнадцатеричные значения, адреса памяти, чем другое.

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

# diff output I would like to filter: - .. 0x000000010e428bb4 _swift_stdlib_bridgeErrorToNSError + 388", - .. 0x000000010e3f0347 swift_dynamicCast + 2455", - .. 0x000000010e3f051a swift_dynamicCast + 2922", + .. 0x00000001013f2bb4 _swift_stdlib_bridgeErrorToNSError + 388", + .. 0x00000001013ba347 swift_dynamicCast + 2455", + .. 0x00000001013ba51a swift_dynamicCast + 2922",

1 Ответ

0 голосов
/ 30 июня 2018

Просто используйте sed, чтобы переписать шестнадцатеричные числа. Что-то вроде:

sed 's/0x[0-9a-f]*/HEX/g'

Какой задан как:

.. 0x000000010e428bb4 _swift_stdlib_bridgeErrorToNSError + 388",

Результат:

.. HEX _swift_stdlib_bridgeErrorToNSError + 388",

Вы можете объединить это с вашим оператором diff, например (при условии bash):

diff <(sed 's/0x[0-9a-f]*/HEX/g' file1) <(sed 's/0x[0-9a-f]*/HEX/g' file2)
...