Rename Files Bash Script - Loop Problem

Я пытаюсь написать сценарий, который возьмет мой файл и переименует 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
0
21.08.2017, 19:23
1 ответ

Вместо цикла я бы посоветовал вам использовать специальный инструмент rename. Его легче читать, быстрее писать и избегать путаницы.

rename 's/_pt-1_/_pt2_/' *_pt-1_*.ts


Предупреждение:rename— это беспорядок в большинстве дистрибутивов. Если вы используете Debian или производную версию, убедитесь, что установлен пакет rename(, а не только двоичный файл rename).

0
28.01.2020, 04:41

Теги

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