如何使用缩进打印 hexdump
How to print hexdump with indent
fmt.Println(hex.Dump([]byte{1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0}))
显示:
00000000 01 02 03 04 05 06 07 08 09 00 01 02 03 04 05 06 |................|
00000010 07 08 09 00 |....|
如何在所有行的十六进制地址前添加缩进?喜欢
00000000 01 02 03 04 05 06 07 08 09 00 01 02 03 04 05 06 |................|
00000010 07 08 09 00 |....|
按 \n 拆分行,然后在每行前缩进即可,但是有没有内置工具可以做到这一点?我尝试了 hex.Dumper
和 tabwriter.NewWriter
,但它们只是将缩进视为正常数据并与十六进制转储一起打印。
hex.Dump()
returns 格式化字符串。如果您希望它的格式类似于缩进每一行,请将所有换行符替换为换行符 + 缩进(例如制表符)。加上缩进到它的开头,这样第一行也将缩进(前面没有换行符)。
要替换,请使用 strings.ReplaceAll()
。
看这个例子:
s := hex.Dump([]byte{1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0})
fmt.Println(s)
s = "\t" + strings.ReplaceAll(s, "\n", "\n\t")
fmt.Println(s)
输出(在 Go Playground 上尝试):
00000000 01 02 03 04 05 06 07 08 09 00 01 02 03 04 05 06 |................|
00000010 07 08 09 00 01 02 03 04 05 06 07 08 09 00 01 02 |................|
00000020 03 04 05 06 07 08 09 00 |........|
00000000 01 02 03 04 05 06 07 08 09 00 01 02 03 04 05 06 |................|
00000010 07 08 09 00 01 02 03 04 05 06 07 08 09 00 01 02 |................|
00000020 03 04 05 06 07 08 09 00 |........|
fmt.Println(hex.Dump([]byte{1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0}))
显示:
00000000 01 02 03 04 05 06 07 08 09 00 01 02 03 04 05 06 |................|
00000010 07 08 09 00 |....|
如何在所有行的十六进制地址前添加缩进?喜欢
00000000 01 02 03 04 05 06 07 08 09 00 01 02 03 04 05 06 |................|
00000010 07 08 09 00 |....|
按 \n 拆分行,然后在每行前缩进即可,但是有没有内置工具可以做到这一点?我尝试了 hex.Dumper
和 tabwriter.NewWriter
,但它们只是将缩进视为正常数据并与十六进制转储一起打印。
hex.Dump()
returns 格式化字符串。如果您希望它的格式类似于缩进每一行,请将所有换行符替换为换行符 + 缩进(例如制表符)。加上缩进到它的开头,这样第一行也将缩进(前面没有换行符)。
要替换,请使用 strings.ReplaceAll()
。
看这个例子:
s := hex.Dump([]byte{1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0})
fmt.Println(s)
s = "\t" + strings.ReplaceAll(s, "\n", "\n\t")
fmt.Println(s)
输出(在 Go Playground 上尝试):
00000000 01 02 03 04 05 06 07 08 09 00 01 02 03 04 05 06 |................|
00000010 07 08 09 00 01 02 03 04 05 06 07 08 09 00 01 02 |................|
00000020 03 04 05 06 07 08 09 00 |........|
00000000 01 02 03 04 05 06 07 08 09 00 01 02 03 04 05 06 |................|
00000010 07 08 09 00 01 02 03 04 05 06 07 08 09 00 01 02 |................|
00000020 03 04 05 06 07 08 09 00 |........|