Вы просто добавляете префикс? Тогда можно было сделать что-то вроде этого:
prefix=ABCDEFG_DWH_
for f in ABCDEPG*; do
gzip < "$f" > "$prefix$f.gz" && rm -- "$f"
done
Альтернативный подход к подходу 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 {}