GZIP Несколько файлов и переименовать их

Самый простой и менее навязчивый способ получить большое количество утилит - найти двоичный файл busybox , подходящий для вашей ОС, и установить его.

Это один файл, но он содержит несколько сотен команд.

1
15.11.2018, 23:23
2 ответа

Вы просто добавляете префикс? Тогда можно было сделать что-то вроде этого:

prefix=ABCDEFG_DWH_
for f in ABCDEPG*; do
    gzip < "$f" > "$prefix$f.gz" && rm -- "$f"
done
3
27.01.2020, 23:18

Альтернативный подход к подходу ilkkachu , который использует только gzip(, который можно найти только в системах OpenBSD ):

for name in ABCDEPG*; do
    gzip -o "ABCDEFG_DWH_$name.gz" -- "$name"
done

Или параллельно сxargs(здесь будут созданы четыре параллельные задачи):

printf '%s\n' ABCDEPG* | xargs -P 4 -I {} gzip -o ABCDEFG_DWH_{}.gz -- {}

Эта параллельная xargsвещь для менее продвинутых реализацийgzip(будет работать в Linux):

printf '%s\n' ABCDEPG* |
xargs -P 4 -I {} \
    sh -c 'gzip -- "$1" && mv -- "$1.gz" "ABCDEFG_DWH_$1.gz"' sh {}
1
27.01.2020, 23:18

Теги

Похожие вопросы