У меня есть музыкальный каталог на компьютере Debian, который время от времени помещает в него слишком большие файлы. Чтобы помочь мне с возможным удалением этих файлов, я установил mediainfo и создал сценарий, который должен пройти через все файлы в музыкальном каталоге с помощью этой команды.
Я пытаюсь использовать параметр продолжительности, чтобы определить, что нужно удалить, а что нет. Пример ввода:
mediainfo --Inform="General;%Duration%" /home/administrator/music/Example\ Full\ OST.mp4
7838987
Вывод возвращает продолжительность в миллисекундах. Обратите внимание: если в файлах есть пробелы, mediainfo помечает перед ними обратную косую черту. Я учел это в своем скрипте:
#!/bin/bash
for i in /home/administrator/music/*
do
# Changing i to readable form for mediainfo
i=$(echo $i | sed -r 's/[ ^]+/\\&/g')
echo $i
# Go Through files, storing the output to mediadur variable
mediadur=$(mediainfo --Inform="General;%Duration%" $i);
echo $mediadur;
done
эхо-выходы:
/home/administrator/music/Example\ Full\ OST.mp4
Вывод mediadur echo ничего не показывает. Но когда я копирую первый вывод эха в первый пример, он показывает тот же результат.
Однако, если в каталоге есть какой-либо носитель, в имени которого нет места, сценарий работает нормально. Вывод скрипта:
/home/administrator/music/546721638279.mp3
83017
Эта проблема меня очень озадачила. Любая помощь приветствуется.