首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >(取消/取消)是否在bash中压缩字符串?

问(取消/取消)是否在bash中压缩字符串?
EN

Stack Overflow用户
提问于 2011-09-24 19:56:15
回答 2查看 20.5K关注 0票数 12

可以使用stdin/stdout在bash中压缩/解压缩字符串吗?

我试过了,但显然不支持?

代码语言:javascript
复制
hey=$(echo "hello world" | gzip -cf)
echo $hey # returns a compressed string
echo $hey | gzip -cfd
gzip: stdin is a multi-part gzip file -- not supported

我不太精通linux,但我阅读了其他压缩实用程序的手册页,却找不到解决方案?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-24 20:21:26

当你这样做的时候:

代码语言:javascript
复制
hey=$(echo "hello world" | gzip -cf)

变量hey中的字节数与通过以下命令创建的/tmp/myfile中的字节数不同:

代码语言:javascript
复制
echo "hello world" | gzip -cf > /tmp/myfile

你会得到" gzip : stdin is a multi-part gzip file -- not supported“错误,因为你破坏了无法解压缩的压缩数据。

VAR=$(...)构造专为处理文本而设计。例如,这就是为什么你会得到额外的尾部修剪。

票数 8
EN

Stack Overflow用户

发布于 2011-09-24 20:40:35

如果您可以接受33%的压缩率损失,则可以存储base64编码的压缩数据:

代码语言:javascript
复制
me$mybox$ FOO=$(echo "Hello world" | gzip | base64 -w0) # compressed, base64 encoded data
me$mybox$ echo $FOO | base64 -d | gunzip # use base64 decoded, uncompressed data
Hello world

它将工作,但每3(压缩)字节将存储在4字节的文本。

票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7538846

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档