- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
全部。
我想用gunzip来计算一个字符串的crc32码。
字符串:测试字符串
此命令运行良好:
echo -n teststring | gzip -f > /tmp/filename && gunzip -lv /tmp/filename && rm -f /tmp/filename
但是这个命令不起作用:
echo -n teststring | gzip -f | gunzip -lv
我搜索了所有 gunzip 手册,发现“如果压缩文件位于不可搜索的媒体上,--list 选项报告大小为 -1,crc 报告为 ffffffff。”,我想知道为什么标准输出是不可搜索的媒体?怎样才能让这个命令正常运行?
更新:
这行不通:
cat /tmp/filename | gunzip -lv
这很好用:
gunzip -lv < /tmp/filename
你能告诉我这两个命令之间的区别吗?谢谢!
最佳答案
当您通过管道传输时,接收可执行文件的输入是不可搜索的。因此,您遇到了问题。
相反,您可以提取倒数第二个四个字节,即 crc:
% echo -n teststring | gzip -1 | tail -c 8 | head -c 4 | hexdump -e '1/4 "%08x" "\n"'
1f58f83e
或者你可以使用 pigz (恰好不尝试搜索列表的 gzip 并行版本):
% echo -n teststring | gzip -1 | pigz -lv
method check timestamp compressed original reduced name
gzip 8 1f58f83e Jul 19 01:35 12 10 -20.0% <stdin>
一般来说,这是一种相当低效的计算 crc 的方法,因为 gzip 做的压缩工作比计算 crc 多得多。 (我在上面加入了-1
选项来最小化压缩工作,但它仍然很多。)你应该简单地编写一个简短的程序来计算crc。您的 Linux 机器几乎肯定有可用的 zlib 库。尝试包含 zlib.h
并使用 -lz
进行链接。您可以阅读 zlib.h
了解如何使用 crc32()
函数。
注释中建议的cksum
命令可用于计算不同的crc。如果你想要的只是任何 crc,那么你可以使用它。如果你想要 gzip、zip、png 等使用的 crc,那么你需要使用 zlib 中的 crc32()
例程,或等效的例程。
关于linux - 使用gunzip计算一个字符串的crc32码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11553941/
我将多个文件解压缩到一个文件夹中,如下所示: gunzip -f -k *.gz 一些 .gz 文件已损坏,导致命令中止。 什么是解压缩所有文件同时忽略损坏文件的好方法? 最佳答案 原始答案给出了一个
一个 API 返回大量结果集,我希望我可以用 PHP 压缩它,但我不知道如何用 Javascript 压缩它。在 Javascript 中是否有某种库能够做到这一点?我在网上搜索并找到了一些东西,但不
这是我的代码的最新版本。感谢您的 zpipe.c,它现在适用于我所有的 gunzipped 文件,无论它们的大小如何。但是我不明白的是,在内部循环中 printf("%s", out) 仍然打印相同的
对于 node.js 和异步处理方式来说相对较新,到目前为止,我已经能够使用 Promise 来使用 fs readFile 来读取文件,但我还没有让 zlib Gunzip 工作。用 Coffees
背景 我正在使用那些硬盘分区的 mysql 服务器: ... /dev/vdd 99G 58G 39G 61% /var/lib/mysql tmpfs 2
我需要在 Windows 的终端中使用 gunzip(这是 gzip 的解压工具) 我已经从 here 下载了 gzip (第一个下载链接) 我安装了它并添加了它的 /bin文件夹到我的 PATH变量
我在一个磁盘空间有限的共享服务器上,并且我有一个 gz 文件,它可以 super 扩展为一个巨大的文件,比我拥有的还要多。我怎样才能“部分”地提取它(假设一次 10 MB),并处理每个部分,甚至暂时不
我有一个 Perl 项目(CGI 脚本,在 Apache 上运行),它以前一直使用 gunzip 和 tac(将 gunzip 管道传输到 tac,然后将其管道传输到文件句柄)以完成其工作负载,即处理
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我只是在测试 Node.js 的 ZLIB,但很快就会遇到奇怪的结果。这是我的脚本(灵感来自 Node.js 手册示例 http://nodejs.org/api/zlib.html#zlib_exa
我正在开发一个程序,该程序从 curl 函数读取 header 并搜索特定 header ,如果找到,则压缩内容部分并在内容中搜索另一个字符串。我需要实现最后一部分。休息完成了。有没有办法从 C++
我正在尝试创建一个 R API for StackOverflow .输出被压缩。例如: readLines("http://api.stackoverflow.com/0.9/stats/", wa
the task 的文档说它有一个即时版本。 在我的例子中,这会导致 NullPointerException: >ant download Java HotSpot(TM) 64-Bit Serv
我已经为我的数据库恢复自动化创建了一个 bash 脚本。当我运行以下命令时,我得到/my/sql/file/path.sql: No such file or directory。 ssh $USER
我在发送到服务器的文件的 .gz 文件中遇到 crc 错误/长度错误。 在手动检索文件时,我得到的文件大小为 1932 字节,并且 gunzips 正常,没有任何问题。 但是当我通过 shell 脚本
在使用 twistedmatrix ProxyClient 时,我如何压缩和处理响应部分? 我需要检查文本或 javascript 和 ajax 查询/答案。我应该使用 handleResponseE
我有大量的 HTTP POST 请求被发送到 nginx 服务器,然后负载平衡到一组反向代理的 node.js/express.js 后端服务器。为了节省一些网络消耗,使用 GZIP 和 header
我正在尝试,只是为了好玩,将 gzip Writer 直接连接到 gzip Reader,这样我就可以动态地写入 Writer 并从 Reader 读取。我希望能准确阅读我写的内容。我正在使用 gzi
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 9 年前。 Improve this
正如某些 StackOverflow 答案所示,您可以使用 decompressedSize = gzipFile.seek(0, io.SEEK_END) 获得确切的 gzip 解压缩文件大小。 .
我是一名优秀的程序员,十分优秀!