Это будет работать, если мы предположим, что все до первого подчеркивания является префиксом.
for f in *.png; do
new=$(echo "$f" | sed -r 's/^([^_]*)_(.*)\.(.*)$/\2_\1.\3/');
echo "Renaming: $f => $new";
#mv $f $new
done
Удалите #
перед mv
, если результат вас устраивает.
С prename
было бы немного проще:
prename -n 's/^([^_]*)_(.*)\.(.*)$/$2_$1.$3/'
Если префиксом всегда является t_
, измените его на этот шаблон:
for f in t_*.png; do
new=$(echo "$f" | sed -r 's/^t_(.*)\.(.*)$/\1_t.\2/');
echo "Renaming: $f => $new";
#mv $f $new
done
Эта проблема возникла из-за схемы NAT от облачного провайдера, которую мы использовали. Связь между узлами в одной зоне доступности по плавающим IP-адресам была ограничена, что приводило к отказу в подключении. Поскольку наш DNS-псевдоним всегда сопоставляется с плавающим IP-адресом, нам пришлось обновить файл /etc/hosts на узле C, чтобы сопоставить частный IP-адрес с псевдонимом DNS. Связь с использованием частного IP-адреса разрешена облачным провайдером в пределах одной зоны доступности и между зонами доступности
.