将字节转换为人类可读的字节

时间:2013-02-05 17:09:15

标签: windows sed null binary-data type-conversion

我有一个由一堆'行'数据组成的文件(实际上并不在单独的行上)。据我所知the description (PDF),每个'行'精确地有四十个字节,如下所示:

  • 4个字节,我可以忽略。
  • 2个字节,它是(十进制)整数240或241的字节表示 - 即00 F0或00 F1 - 取决于'row'。
  • 4个字节,我可以忽略。
  • 11个字节:前几个字节是我需要的ASCII字符串,其余的是填充00字节。
  • 我可以忽略1个字节。
  • 我需要1个字节。从文档中看,这似乎是ASCII“B”,“S”或“0”。
  • 1个字节,它是一个小整数的字节表示 - 即00,01等。
  • 4个字节,它是整数的字节表示。
  • 4个字节,它是整数的字节表示。
  • 4个字节,它是整数的字节表示。
  • 4个字节,它是整数的字节表示。

文件中没有其他内容(例如,没有文件头)。 (我对链接文档的理解可能是错误的,并且会感谢任何更正;可能有更多信息elsewhere (PDF)。)

我希望:

  1. 将数字的每个字节表示转换为人类可读的数字表示形式,并将每个00字节转换为(例如)人类可读的0 ,并且
  2. 将文件转换为逗号分隔等。
  3. 现在,步骤(2)应该可以使用sed;我之所以提到它只是因为我想确保步骤(1)的完成是允许步骤(2)(例如,在执行步骤(1)时跟踪每个字段的字节数)。但是步骤(1)我不知道该怎么做。有人可以帮忙吗?

    作为一个警告,请注意我对sed和bash很满意并且可以处理perl,但是没有真正的编程经验;唉,我在Windows机器上这样做我没有安装程序权限,所以(虽然我有a sed port)我没有bash。所以,基本上,我需要在sed或Windows(DOS)命令行脚本中执行此操作。 (我应该能够将这些文件下载到另一台机器上,与它们一起工作,然后上传它们,如果结果是必要的话。)

1 个答案:

答案 0 :(得分:1)

Perl具有您可以使用的unpack功能。