сжимает и распаковывает файл с каждым из «сжатых, gzip, bzip2 и zip» - PullRequest
0 голосов
/ 17 ноября 2010

Я пытаюсь написать скрипт, который принимает имя файла в качестве аргумента, а затем сжимает и распаковывает файл с каждой из программ, compress, gzip, bzip2 и zip.На каждом этапе он отмечает размер файла до и после сжатия.Наконец, он отображает список, показывающий программу сжатия, несжатый размер, сжатый размер и степень сжатия (до 1 знака после запятой).Я хочу, чтобы список был упорядочен по достигнутому сжатию, а цифры для наиболее эффективного сжатия показаны сверху.Любые комментарии или помощь будет принята с благодарностью.Большое спасибо.

1 Ответ

3 голосов
/ 17 ноября 2010
#!/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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...