[英]Unzip a file zipped in Unix using 7zip
我的目標是將Unix進程創建的文件作為excel文件發送給自己。 所以我用下面的命令來實現它。
tr -d '\t' < PROGRAM_CREATED_FILE | sed -e 's/\\//g' | awk 'BEGIN{FS=">"; OFS="\t"} '{$1=$1}1' > file.xls
gzip -9 file.xls
echo "test mail" | sendxchange -a "file.xls.gz" -s "Report" my_mail_id
收到郵箱中的文件后,我將其保存在Windows計算機中。 我嘗試使用7zip提取存檔。 它嘗試提取並在file.xls中顯示數據錯誤。 文件損壞
需要幫助。
謝謝
您的壓縮文件是二進制文件,而不是Mail希望發送的ASCII文件。 您可以在發送之前對其base64-encode
uuencode
或base64-encode
,如下所示:
gzip -9 < file.xls | uuencode -m file.xls.gz > file.xls.gz
... sendxchange -a "file.xls.gz" ...
使用上面的-m
base64
編碼,而將其uuencoding
導致uuencoding
。
在Windows端,您將需要再次解碼文件-您可以使用Microsoft的certutil
工具(如果使用base64編碼)或SourceForge的Unix實用程序對其進行解碼。
通過FTP傳輸時,請務必先設置BIN
模式,否則您可能會以ASCII
模式傳輸,這對二進制文件不利,因為它將某些行尾字符轉換為愚蠢的Windows CR / LF組合,並且可能會出現在二進制文件中得到轉換-這不是您想要的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.