相当新手的问题,但我坚持了一段时间:我有一个问题是读取并解析存储在我知道的地址的硬盘中的字符串...
我不知道字符串的长度,只有它的最大长度为n
。它已写入n
- 用零启动的缓冲区,因此其hexdump类似于xx xx xx xx 00 00 00 00 00
,其中xx
的十六进制表示正确的字符串字符。
因为我知道字符串的地址,我使用tmp
将其复制到二进制dd if=<hd> of=tmp
文件中(使用正确的bs / count / skip来获取字符串的n
字节缓冲)。然后在bash中(或者更准确地说是MINIX ash)我尝试使用od
来解析它并读入变量但我无法摆脱空格/空值:
name=$(od -Anx -tc tmp)
echo $name
我得到的是J O H N \0 \0 \0 \0 \0
,而不仅仅是JOHN
答案 0 :(得分:1)
你可以使用一个简单的技巧,它依赖于bash strings cannot contain a NUL character:
这一事实name="$(cat tmp)"
echo $name