mon*_*ing 2 c c++ unix binary text
我得到了一些包含整数的二进制文件.是否有一些不错的Unix命令,这将允许我将其转储到没有偏移信息等的终端?
就像是:
double int[4];
while (fread(tmp, sizeof(int), 4, stdin))
for(int i = 0; i < 4; i++)
printf("%d\t",tmp[i]);
Run Code Online (Sandbox Code Playgroud)
要使用标准的Unix工具来解决这类问题,通常需要将一堆工具组合在一起:
od -v -t d4 ~/.profile | awk '{$1 = ""; print}' | fmt -1 | sed 's/^ *//'
Run Code Online (Sandbox Code Playgroud)
所述od印刷品以十进制每个32位字,与前面的偏移.该awk评论删除偏移.该fmt命令强制每行一个整数.该sed命令会从结果中删除前导空格.
尝试以下hexdump(1)咒语:
hexdump -v -e '4/4 "%d\t"' file
-v强制打印输出整个文件(不*用于重复行),
-e采用格式字符串'4/4 "%d\t"'告诉hexdump(1)迭代四次,在每次迭代时使用给定printf的掩码打印四个字节.