![是否存在仅匹配以 null 结尾的 C 字符串的“字符串”变体?](https://linux22.com/image/120932/%E6%98%AF%E5%90%A6%E5%AD%98%E5%9C%A8%E4%BB%85%E5%8C%B9%E9%85%8D%E4%BB%A5%20null%20%E7%BB%93%E5%B0%BE%E7%9A%84%20C%20%E5%AD%97%E7%AC%A6%E4%B8%B2%E7%9A%84%E2%80%9C%E5%AD%97%E7%AC%A6%E4%B8%B2%E2%80%9D%E5%8F%98%E4%BD%93%EF%BC%9F.png)
我遇到了一种情况,似乎它必须已经在某个地方有一个已实施的解决方案,但我很难找到一个解决方案。我正在寻找功能或多或少与strings
(来自 binutils)完全相同的东西,但仅当可打印字符的运行也以空字节结尾时才匹配。作为一个额外的问题,我需要在每场比赛旁边打印十六进制偏移量(la strings -tx
)。
我见过一个类似的问题询问如何使用grep
.我想如果我能找到一种方法来grep
像那样输出十六进制偏移量,那么类似的东西就可以工作strings -tx
。但在我看来,在某个地方应该存在一个已经可以本地执行此操作的工具。
答案1
基于类似的问题,grep
可以输出小数偏移量。您可以使用 awk 将它们转换为十六进制。
grep -Eboz '[[:print:]]{4,}$' inputfile |
awk '{i=index($0,":");printf "%7x %s\n",$0+0,substr($0,i+1)}'