在sqlite3控制台中使用ASCII将十六进制转储数据查看为十六进制转储

ES

我在SQLite表中有一列数据被存储为Blob。具体来说,它是一个序列化的POJO(java对象)。

无论哪种方式,我都希望在SQLite控制台中以十六进制转储的形式查看它,如下所示:

0000000000  |The correction f|
0000000016  |or the aberratio|
0000000032  |n of light is sa|
0000000048  |id,.on high auth|
0000000064  |ority, not to be|
0000000080  | perfect even in|
0000000096  | that most perfe|
0000000112  |ct organ, the.ey|
0000000128  |e..|

我知道该语句SELECT HEX(obj) FROM data WHERE rowid = 1将获取的数据仅为十六进制,但现在我想将其通过管道传递给可以提供十六进制转储视图的对象。

PS-我知道我要查看的数据是二进制的(序列化的POJO),但我想看看其中的内容是什么实验。因此,即使最终结果仍然不清楚,也请让我知道!

更新:我尝试了一些建议,但发现sqlite3没有输出完整的十六进制。我期望大约500个字节,但是却变成10个字节:

root@ubuntu:~# sqlite3 IceCream.db "select hex(obj) from Customers where rowid=1;" 
ACED00057372002D6564752E6761746563682E7365636C6173732E70726F6A656374322E637573746F6D65722E437573746F6D6572000000000000000102000B4C0007616464726573737400124C6A6176612F6C616E672F537472696E673B4C0012617661696C61626C65467265654974656D737400134C6A6176612F6C616E672F496E74656765723B4C00096269727468446174657400104C6A6176612F7574696C2F446174653B4C000C646973636F756E745261746571007E00024C000966697273744E616D6571007E00014C000A676F6C645374617475737400134C6A6176612F6C616E672F426F6F6C65616E3B4C00086C6173744E616D6571007E00014C000D6D6F6E74686C79506F696E747371007E00024C0013706F696E74734561726E656450657254696D657400134C6A6176612F7574696C2F486173684D61703B4C000B746F74616C506F696E747371007E00024C000876697053696E636571007E0003787200386564752E6761746563682E7365636C6173732E70726F6A656374322E73797374656D732E446174616261736553657269616C4F626A65637400000000000000010200024C000269647400104C6A6176612F6C616E672F4C6F6E673B4C00166C61737454696D654F626A6563744D6F64696669656471007E000778707372000E6A6176612E6C616E672E4C6F6E673B8BE490CC8F23DF0200014A000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B020000787000000000000000017371007E0009000001497757AAFB740006436172736F6E737200116A6176612E6C616E672E496E746567657212E2A0A4F781873802000149000576616C75657871007E000A000000007372000E6A6176612E7574696C2E44617465686A81014B59741903000078707708000001349BB816607871007E000F74000442696C6C737200116A6176612E6C616E672E426F6F6C65616ECD207280D59CFAEE0200015A000576616C7565787000740005313233205471007E000F737200116A6176612E7574696C2E486173684D61700507DAC1C31660D103000146000A6C6F6164466163746F7278703F400000770800000010000000007871007E000F70


root@ubuntu:~# sqlite3 IceCream.db "select obj from Customers where rowid=1;" | hexdump -C
00000000  ac ed 0a                                          |...|
00000003
CL。

sqlite3外壳不能在二进制数据转储显示ASCII值。

您必须将其输出传递到单独的工具中:

sqlite3 test.db "SELECT MyBlob FROM MyTable WHERE ID = 42;" | hexdump -C
sqlite3 test.db "SELECT MyBlob FROM MyTable WHERE ID = 42;" | xxd -g1

但是,sqlite3将blob转换为字符串以显示它,因此如果blob包含零字节,则此操作将无效。

您必须将blob输出为十六进制,然后将其转换回二进制,以便可以按所需格式显示它:

sqlite3 test.db "SELECT quote(MyBlob) FROM MyTable WHERE id = 42;"  \
| cut -d\' -f2                                                      \
| xxd -r -p                                                         \
| xxd -g1

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

十六进制转储输出更宽

来自分类Dev

使SMART十六进制转储可读

来自分类Dev

可以使用十六进制转储(hd)或八进制转储(od)将二进制数据显示为零和一吗?

来自分类Dev

十六进制转储实用程序C ++显示十六进制和ASCII

来自分类Dev

使用OrderedDict加载和转储十六进制值

来自分类Dev

使用python将十六进制数转储到YAML中

来自分类Dev

如何仅使用行号将大的几行十六进制转储。(非字节)

来自分类Dev

Metaflac输出十六进制转储而不是文本

来自分类Dev

十六进制转储文件的pythonic方式

来自分类Dev

如何解释图像十六进制转储?

来自分类Dev

每行十六进制转储的可移植字节

来自分类Dev

在版本6 Unix中取消转储od(八进制或十六进制转储)

来自分类Dev

十六进制转储为二进制-等效xxd -r

来自分类Dev

将文件转换为二进制文件(进行十六进制转储)

来自分类Dev

将文件转换为二进制文件(进行十六进制转储)

来自分类Dev

如何从十六进制转储中删除地址和ASCII表示形式(删除某些列)?

来自分类Dev

来自文本文件十六进制转储的奇怪ASCII

来自分类Dev

字节[]到文本文件的数据包转储/十六进制视图格式

来自分类Dev

是否可以在PyShark中访问数据包的十六进制转储?

来自分类Dev

是否可以在PyShark中访问数据包的十六进制转储?

来自分类Dev

将十六进制转储值作为字符串传递

来自分类Dev

如何解释二进制文件的八进制或十六进制转储?

来自分类Dev

在Windows上将文件的十六进制转储转换为二进制(程序)文件?

来自分类Dev

C 中的十六进制转储文本和二进制文件

来自分类Dev

base64编码的文件是否小于直线十六进制转储文件?

来自分类Dev

从Visual Studio测试日志的十六进制转储中获取价值

来自分类Dev

如何编译Intel x86汇编代码以获取十六进制转储?

来自分类Dev

文件的十六进制转储-这些数字是什么意思?

来自分类Dev

如何从部分硬盘驱动器中获取十六进制转储?

Related 相关文章

  1. 1

    十六进制转储输出更宽

  2. 2

    使SMART十六进制转储可读

  3. 3

    可以使用十六进制转储(hd)或八进制转储(od)将二进制数据显示为零和一吗?

  4. 4

    十六进制转储实用程序C ++显示十六进制和ASCII

  5. 5

    使用OrderedDict加载和转储十六进制值

  6. 6

    使用python将十六进制数转储到YAML中

  7. 7

    如何仅使用行号将大的几行十六进制转储。(非字节)

  8. 8

    Metaflac输出十六进制转储而不是文本

  9. 9

    十六进制转储文件的pythonic方式

  10. 10

    如何解释图像十六进制转储?

  11. 11

    每行十六进制转储的可移植字节

  12. 12

    在版本6 Unix中取消转储od(八进制或十六进制转储)

  13. 13

    十六进制转储为二进制-等效xxd -r

  14. 14

    将文件转换为二进制文件(进行十六进制转储)

  15. 15

    将文件转换为二进制文件(进行十六进制转储)

  16. 16

    如何从十六进制转储中删除地址和ASCII表示形式(删除某些列)?

  17. 17

    来自文本文件十六进制转储的奇怪ASCII

  18. 18

    字节[]到文本文件的数据包转储/十六进制视图格式

  19. 19

    是否可以在PyShark中访问数据包的十六进制转储?

  20. 20

    是否可以在PyShark中访问数据包的十六进制转储?

  21. 21

    将十六进制转储值作为字符串传递

  22. 22

    如何解释二进制文件的八进制或十六进制转储?

  23. 23

    在Windows上将文件的十六进制转储转换为二进制(程序)文件?

  24. 24

    C 中的十六进制转储文本和二进制文件

  25. 25

    base64编码的文件是否小于直线十六进制转储文件?

  26. 26

    从Visual Studio测试日志的十六进制转储中获取价值

  27. 27

    如何编译Intel x86汇编代码以获取十六进制转储?

  28. 28

    文件的十六进制转储-这些数字是什么意思?

  29. 29

    如何从部分硬盘驱动器中获取十六进制转储?

热门标签

归档