Переданные по каналу поисковые запросы в энергии или меньше

Использует ffmpeg и распечатывает тайм-аут в считанные секунды:

times=()
for f in *.ts; do
    _t=$(ffmpeg -i "$f" 2>&1 | grep "Duration" | grep -o " [0-9:.]*, " | head -n1 | tr ',' ' ' | awk -F: '{ print ($1 * 3600) + ($2 * 60) + $3 }')
    times+=("$_t")
done
echo "${times[@]}" | sed 's/ /+/g' | bc

Explanation:

for f в *.ts; do iterates каждый из файлов, заканчивающийся на ".ts"

ffmpeg -i "$f" 2>&1 перенаправляет вывод на stderr

grep "Duration" | grep -o" [0-9:. ]*, " голова | -n1 | tr '," ' '] изолирует время

awk -F: '{ вывод ($1 * 3600) + ($2 * 60) + $3 }' Преобразует время в секунды

times+=("$_t") добавляет секунды к массиву

echo "${times[@]}". | sed 's/ /+/g' | bc расширяет каждый из аргументов и заменяет пробелы и передает их в bc обычный калькулятор linux

.
0
18.02.2014, 22:45
1 ответ
[12201] в [11948]vi[11949] удаляет все линии, кроме тех, которые соответствуют этому образцу. Затем можно отфильтровать больше с помощью:[12202]Хотя это можно сделать за один раз с помощью:[12203]В [11950]меньше [11951], наберите [11952]и [11953], а затем [11954]^2014-02-18 15:30:. *UserName:someguy[12204]
2
28.01.2020, 02:37

Теги

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