String 如何使用缩进打印hextump

String 如何使用缩进打印hextump,string,go,hexdump,String,Go,Hexdump,Dump[]字节{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 0

Dump[]字节{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转储一起打印。

返回格式化字符串。如果您想将其格式设置为每行缩进,请将所有换行符替换为换行+缩进,例如制表符。加上将缩进前置到它的开头,这样第一行也将缩进,而不在换行符之前

如需更换,请使用

请参见此示例:

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)
请在以下服务器上尝试输出:


您可能需要在每行之前添加制表符或其他缩进字符。你尝试过什么?但是有没有内置的工具可以做到这一点不完全是这样。但是您可以使用bytes.Split和bytes.Join的组合。
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                           |........|