Bash: сохранить результат поиска в переменной bash для использования в команде ffmpeg - PullRequest
0 голосов
/ 08 апреля 2020

Я использую следующую команду, чтобы получить большой файл

find . -printf '%s %p\n'| sort -nr | head -1

Я хочу сохранить путь к переменной и использовать его в команде ffmpeg, например:

ffmpeg -ss 600 -t 1 -i $bigfile -vcodec png -vframes 1 image.png

Я вижу, что % p содержит ./bigfile.m2ts

Как этого добиться и как получить полный путь к большому файлу?

1 Ответ

0 голосов
/ 08 апреля 2020

Сохранить вывод команды относительно просто:

bigfile="$(find . -printf '%s %p\n'| sort -nr | head -1 | sed 's/^[^ ]* //')"

И если у вас есть относительный путь, его достаточно просто сделать абсолютным:

bigfile="${PWD}/$(find . -printf '%s %p\n'| sort -nr | head -1 | sed 's/^[^ ]* //')"

Это даст Вы что-то вроде home/pax/./someDir/bigHonkinFile.ext, но это все еще пригодно для использования.

Обратите внимание, что я добавил дополнительный sed в ваш конвейер, чтобы уменьшить размер файла. Вам нужен этот размер для сортировки , но он не помещается в строку имени файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...