我有以下十六进制转储:
00000000: 2345 5854 5241 530a 0a31 2e20 746f 2061 #EXTRAS..1. to a
00000010: 6464 2075 7365 723a 2060 7375 646f 2075 dd user: `sudo u
00000020: 7365 7261 6464 205b 7573 6572 6e61 6d65 seradd [username
00000030: 5d60 2061 6e64 2074 6865 6e20 6073 7564 ]` and then `sud
00000040: 6f20 7061 7373 7764 205b 7573 6572 6e61 o passwd [userna
00000050: 6d65 5d60 2074 6f20 6164 6420 7061 7373 me]` to add pass
00000060: 776f 7264 0a0a 312e 2074 6865 2063 6f6d word..1. the com
00000070: 6d61 6e64 2061 626f 7665 2077 696c 6c20 mand above will
00000080: 6e6f 7420 6164 6420 6120 686f 6d65 2064 not add a home d
00000090: 6972 6563 746f 7279 2066 6f72 2074 6865 irectory for the
000000a0: 2061 6464 6564 2075 7365 720a 0a31 2e20 added user..1.
000000b0: 746f 2067 6976 6520 7468 6520 7573 6572 to give the user
000000c0: 2061 2068 6f6d 6520 6469 7265 6374 6f72 a home director
000000d0: 792c 2069 6e63 6c75 6465 2074 6865 2060 y, include the `
000000e0: 2d6d 6020 666c 6167 0a0a 0a -m` flag...
vim 告诉我它是 235b,我编写的用于计算所有字符的简单命令告诉我有 243 个字符:
xxd -ps extras.md | sed 's/\(..\)/\1\n/g' | wc -l
另外,左边的内存列告诉它占用了:'d0 + 11 字节,所以 219 字节'?如果我理解正确的话。
有人可以帮我将 219、235 和 243 连接在一起吗?或者告诉我我做错了一切
这也有效,但请告诉我如何解决
答案1
十六进制转储显示从 0x00 (0) 到 0xEA (234) 的字符。这使得总共 235 个字符。
您的命令xxd -ps extras.md | sed 's/\(..\)/\1\n/g'
还输出 8 个额外的空行(原始输出的行尾xxd
),这些空行按 计数wc -l
。
解决方案:只计算非空行
xxd -ps extras.md | sed 's/\(..\)/\1\n/g' | grep -c .