У меня есть несколько папок, содержащих несколько видео-лекций. Названия файлов (видео) похожи на topic blah blah blah - Lecture xx.mp4
Я хочу переименовать их в Lecture xx.mp4
Bash скрипт для переименования файлов
Я написал следующий сценарий bash. И, похоже, он зависает (замедляется) и не дает результата.
for file in *.mp4; do
echo "Renaming file :: $file"
nn=$(grep -o 'Lecture.[0-9]*' "$file")
echo $nn
#mv "$file" "$nn"
done
Просьба помочь мне исправить этот сценарий.
Но «бла-бла-бла» может также содержать символ '-'. – vvy
Альтернатива, которая позволяет избежать зависимости от пространства-пробела: 'new = $ {file/* Lecture/Lecture}' – John1024
@John это работает. @ MichaWiedenmann большое спасибо. Проблема решена, но можете ли вы объяснить, почему это 'nn = $ (grep -o 'Lecture. [0-9] *'" $ file ")' медленный и неправильный. Я также попробовал «sed» так же неправильно. – vvy