Bash 如何区分2个文件,同时忽略其中十六进制值的差异?
我有两个文件,它们是同一事物的不同版本。但是,其中一个具有不同的十六进制值和内存地址 是否有一个diff命令或一个过滤器可以用来进行diff,以便在忽略不同的十六进制值后,输出只会是不同的行Bash 如何区分2个文件,同时忽略其中十六进制值的差异?,bash,shell,diff,zsh,Bash,Shell,Diff,Zsh,我有两个文件,它们是同一事物的不同版本。但是,其中一个具有不同的十六进制值和内存地址 是否有一个diff命令或一个过滤器可以用来进行diff,以便在忽略不同的十六进制值后,输出只会是不同的行 #我要筛选的差异输出: - .. 0x000000010e428bb4_swift_stdlib_bridgeErrorToNSError+388“, -..0x000000010e3f0347 swift_dynamicCast+2455“, - .. 0x000000010e3f051a s
#我要筛选的差异输出:
- .. 0x000000010e428bb4_swift_stdlib_bridgeErrorToNSError+388“,
-..0x000000010e3f0347 swift_dynamicCast+2455“,
- .. 0x000000010e3f051a swift_dynamicCast+2922“,
+..0x00000001013f2bb4 _swift_stdlib_BRIDGE ERROR TONSERROR+388“,
+ .. 0x00000001013ba347 swift_dynamicCast+2455“,
+..0x00000001013ba51a swift_dynamicCast+2922“,
只需使用sed
重写十六进制数即可。比如:
sed 's/0x[0-9a-f]*/HEX/g'
给定的输入如下:
.. 0x000000010e428bb4 _swift_stdlib_bridgeErrorToNSError + 388",
结果:
.. HEX _swift_stdlib_bridgeErrorToNSError + 388",
您可以将其与diff
语句相结合,例如(假设bash
):
diff只需使用sed
重写十六进制数即可。比如:
sed 's/0x[0-9a-f]*/HEX/g'
给定的输入如下:
.. 0x000000010e428bb4 _swift_stdlib_bridgeErrorToNSError + 388",
结果:
.. HEX _swift_stdlib_bridgeErrorToNSError + 388",
您可以将其与diff
语句相结合,例如(假设bash
):
diff如何使用awk
过滤掉看起来像十六进制的单词,然后通过管道传输到diff
?如何使用awk
过滤掉看起来像十六进制的单词,然后通过管道传输到diff
?