Я пытаюсь написать сценарий, который возьмет мой файл и переименует pt-1 в ] pt2 для напр. testfile_pt-1_date.ts в тот момент, когда скрипт правильно переименует файл и правильно скопирует его в указанную папку.
У меня проблема в том, есть ли файл, например. testfile_pt_date.ts, файл не переименовывается, а копируется, чего я не хочу, я хочу, чтобы файл игнорировался, я не уверен, почему цикл for do принимает файл с pt в нем любой знает, где я ошибся.
#! /bin/bash
file=$1
for file in *_pt-1_*.ts
do
echo "$1"
a="$(echo $1 | sed s/_pt-1_/_pt2_/)"
cp "$1" "$HOME/SGTV/${a##*/}"
echo "$a"
done
Вместо цикла я бы посоветовал вам использовать специальный инструмент rename
. Его легче читать, быстрее писать и избегать путаницы.
rename 's/_pt-1_/_pt2_/' *_pt-1_*.ts
Предупреждение:rename
— это беспорядок в большинстве дистрибутивов. Если вы используете Debian или производную версию, убедитесь, что установлен пакет rename
(, а не только двоичный файл rename
).