我有一个二进制文件,我想用0xaa,0xbb,0xcc,0xdd
用shell脚本0x11,0x22,0x33,0x44
替换
我可以将0xaa,0xbb,0xcc,0xdd
放入$ 1之类的shell脚本中,但是如何在不使用sed的情况下将其替换为0x11,0x22,0x33,0x44
?
答案 0 :(得分:0)
您可以创建一个bash脚本,对文件进行十六进制转储,进行简单的替换,然后转换回二进制文件。
您可以使用xxd或hexdump之类的应用程序来创建文件的十六进制转储。此处对此进行了说明:convert binary data to hex in shell script?
看起来xxd创建的十六进制字符串看起来像是“ aabbccdd”,而不是您的“ 0xaa,0xbb,0xcc,0xdd”,所以要当心!
要了解如何进行替换,您可以查看以下答案:Find and Replace Inside a Text File from a Bash Command
然后,您需要将HEX字符串转换回二进制,这在这里进行了解释:linux shell scripting: hex string to bytes