问题标签 [xxd]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
17 浏览

bash - 使用时间戳格式化 TShark 有效负载输出

目前我正在输出 tshark 过滤数据包的 ascii 有效负载:

tshark -i ens224 -l -T fields -e data host 192.168.1.123 and dst port 3423 | xargs -n1 -I{} echo "{}0d0a" | xxd -r -p -

其中 xxd 用于将数据字段中的十六进制数据转换为 ascii。

输出看起来像:

我想在捕获时间之前加上它。

我怎么做?

0 投票
1 回答
23 浏览

printf - 将小十六进制值转换为二进制值的问题

我正在尝试获取具有十六进制数字的文件的内容并将该数字转换为二进制并输出到文件。

这是我正在尝试但没有得到二进制值的方法:

Hex.txt的内容是:ff

我也尝试过 FF 和 0xFF,但我只想使用 ff,因为我从中提取信息的设备具有这种格式。

而不是应该是 11111111 ,我得到了上面 2 个点的 y 。

如果我将其更改为 ee,我会得到一个带有 2 个点的 i。它似乎读得很好,但根据我在 xxd -r -p 命令上读到的内容,它没有以正确的格式输出。

我发现将十六进制转换为二进制的其他方法要么也不起作用,要么是一个相当大的 Bash 脚本,似乎没有必要做我认为简单的任务。

这也给了我带有 2 个点的 y。

出于某种原因,我找到的几乎每个解决方案都给了我这种格式,而不是人类可读的二进制值,带有 1 和 0。

任何帮助表示赞赏。我计划在脚本中使用它来使用 curl 从 Digital Loggers 设备中提取继电器值,并为 Home Assistant 提供一个可读文件来记录继电器状态。Digital Loggers curl cmd 使用十六进制一次给出所有 8 个继电器的状态,而不是能够拉出特定继电器的状态。

0 投票
2 回答
52 浏览

c++ - 如何使 C++ 头文件更小?头文件是用“xxd -i”生成的

我们需要将一些数据存储为 c++ 头文件,以便我们可以将其包含在构建包中并随任何使用它的应用程序一起提供。

为此,我们使用

这很好用,但 data.h 文件现在是 data.png 文件的 6 倍大。这意味着,如果 data.png 为 4MB,则 data.h 将为 24MB。

请问有没有办法将data.h文件压缩到更小的尺寸?

谢谢!

- - 更新 - -

谢谢大家的建议!我想我可以在这里澄清需要提供更多背景信息!

  1. 我们使用文件的理​​想方式是我们可以将它作为输入流打开

ps 文件不是 png 文件,而是脚本模型,我使用 png 作为示例,因为我发现它是“xxd -i”的更通用问题

  1. 我们没有找到一种方法可以将其作为要读取的文件提供,因为代码实际搜索的文件系统将在 Android/iOS 中。(仅移动系统上的文件可用,源代码将压缩在 .so 文件中)

  2. 使用头文件,我们可以做类似的事情

源代码最终将构建为 lib.so。在我们的测试中,一个 70KB 的 data.h 最终会增加 45KB 到 lib.so。

0 投票
0 回答
13 浏览

xxd - 为什么 xxd -r 会切断我的字符串的第一个字符?

我正在运行以下命令:

对于我的生活,我不知道为什么输出不以'P'开头