可以使用stdin/stdout在bash中压缩/解压缩字符串吗?
我试过了,但显然不支持?
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,但我阅读了其他压缩实用程序的手册页,却找不到解决方案?
发布于 2011-09-24 20:21:26
当你这样做的时候:
hey=$(echo "hello world" | gzip -cf)变量hey中的字节数与通过以下命令创建的/tmp/myfile中的字节数不同:
echo "hello world" | gzip -cf > /tmp/myfile你会得到" gzip : stdin is a multi-part gzip file -- not supported“错误,因为你破坏了无法解压缩的压缩数据。
VAR=$(...)构造专为处理文本而设计。例如,这就是为什么你会得到额外的尾部修剪。
发布于 2011-09-24 20:40:35
如果您可以接受33%的压缩率损失,则可以存储base64编码的压缩数据:
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字节的文本。
https://stackoverflow.com/questions/7538846
复制相似问题