Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 如何区分2个文件,同时忽略其中十六进制值的差异?_Bash_Shell_Diff_Zsh - Fatal编程技术网

Bash 如何区分2个文件,同时忽略其中十六进制值的差异?

Bash 如何区分2个文件,同时忽略其中十六进制值的差异?,bash,shell,diff,zsh,Bash,Shell,Diff,Zsh,我有两个文件,它们是同一事物的不同版本。但是,其中一个具有不同的十六进制值和内存地址 是否有一个diff命令或一个过滤器可以用来进行diff,以便在忽略不同的十六进制值后,输出只会是不同的行 #我要筛选的差异输出: - .. 0x000000010e428bb4_swift_stdlib_bridgeErrorToNSError+388“, -..0x000000010e3f0347 swift_dynamicCast+2455“, - .. 0x000000010e3f051a s

我有两个文件,它们是同一事物的不同版本。但是,其中一个具有不同的十六进制值和内存地址

是否有一个diff命令或一个过滤器可以用来进行diff,以便在忽略不同的十六进制值后,输出只会是不同的行

#我要筛选的差异输出:
-    .. 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