Linux (Un/De)在bash中压缩字符串?
是否可以使用stdin/stdout在bash中压缩/解压缩字符串 我尝试过这个,但显然它不受支持Linux (Un/De)在bash中压缩字符串?,linux,bash,compression,gzip,Linux,Bash,Compression,Gzip,是否可以使用stdin/stdout在bash中压缩/解压缩字符串 我尝试过这个,但显然它不受支持 hey=$(回声“hello world”| gzip-cf) echo$hey#返回一个压缩字符串 echo$hey | gzip-cfd gzip:stdin是一个由多部分组成的gzip文件--不受支持 我不太熟悉linux,但我阅读了其他压缩实用程序手册页,找不到解决方案?当您这样做时: hey=$(echo "hello world" | gzip -cf) 变量hey中的字节数与/t
hey=$(回声“hello world”| gzip-cf)
echo$hey#返回一个压缩字符串
echo$hey | gzip-cfd
gzip:stdin是一个由多部分组成的gzip文件--不受支持
我不太熟悉linux,但我阅读了其他压缩实用程序手册页,找不到解决方案?当您这样做时:
hey=$(echo "hello world" | gzip -cf)
变量hey
中的字节数与/tmp/myfile
中的字节数不同,这些字节是由以下人员创建的:
echo "hello world" | gzip -cf > /tmp/myfile
您会收到“gzip:stdin是一个多部分gzip文件--不受支持”错误,这仅仅是因为您破坏了无法解压缩的压缩数据
VAR=$(…)
构造是为处理文本而设计的。例如,这就是为什么要进行额外的尾部修剪。如果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个字节的文本中。压缩时正确使用
base64
应该是base64-w0
。否则,将向输出中添加换行符。