我正在尝试编写一个脚本,该脚本将文件名作为参数,然后使用每个程序compress, gzip, bzip2
和zip
压缩和解压缩该文件。在每个阶段,它都会记录压缩前后文件的大小。最后,它显示一个列表,显示压缩程序,未压缩大小,压缩大小和压缩比(最多1位小数)。我希望列表按照实现的压缩顺序排列,最高效压缩的数字在顶部。任何评论或帮助将非常感谢。非常感谢。
答案 0 :(得分:3)
#!/bin/bash
file="$1"
# Original file size
orig_size=$(stat -c'%s' $file)
# Get sizes
gzip_size=$(gzip -c "$file" | wc -c)
# Repeat for other compression types...
# Get ratios
gzip_ratio=$(echo "scale=1; 100 * ($orig_size - $gzip_size) / $orig_size" | bc)
# Repeat for others...
# Unsorted output
echo "gzip $orig_size $gzip_size $gzip_ratio" >> unsorted.txt
# Repeat for others...
# Create sorted list
sort -n -r +3 -4 unsorted.txt > sorted.txt
cat sorted.txt # Print sorted list