#!/bin/sh
prefix='filename'
suffix='.txt.zip'
name='filename.txt.zip_20180202_30291_233'
newname="$prefix${name#$prefix$suffix}$suffix"
echo mv "$name" "$newname"
Это приведет к выводу
mv filename.txt.zip_20180202_30291_233 filename_20180202_30291_233.txt.zip
Подстановка параметров ${name#$prefix$suffix}
удаляет $prefix$suffix
, то есть filename.txt.zip
, с начала $name
, что дает вам _20180202_30291_233
.Затем к этому добавляется $prefix
и добавляется $suffix
для создания $newname
.
Цикл по всем файлам, которые совпадают с "$prefix$suffix"*
в текущем каталоге, и переименование всех:
for name in "$prefix$suffix"*; do
newname="$prefix${name#$prefix$suffix}$suffix"
echo mv "$name" "$newname"
done
echo
там для защиты.Удалите его, если вы уверены, что код будет работать правильно.