Чтобы сохранить такой же формат документа здесь -и вставить заданный текст непосредственно перед последней строкой файла, попробуйте ed!
ed -s /etc/security/limits.conf << EOF
$ i
* soft nproc 65535
* hard nproc 65535
* soft nofile 65535
* hard nofile 65535
root soft nproc 65535
root hard nproc 65535
root soft nofile 65535
root hard nofile 65535
.
wq
EOF
Это отправляет последовательность команд в ed, все в документе здесь -. Мы обращаемся к последней строке файла с помощью $
и говорим, что мы хотели бы i
вставить некоторый текст. Далее следует текст, как и в вашем примере; как только мы закончили со вставленным текстом, мы говорим ed, что закончили с одной точкой(.
). W
записать файл обратно на диск, а затем q
uit.
Если вы хотите свернуть $ i
в $i
, вам нужно избежать знака доллара или использовать цитируемый здесь -документ (ed -s input << 'EOF'...
), чтобы предотвратить расширение $i
до текущего значения i
переменная или пустая, если такая переменная не установлена.
Вы можете записывать субтитры прямо из mkv, используя фильтр «субтитры».
Просто добавьте-vf "subtitles='$PATH_TO_MKV':stream_index=$SUBTITLE_ID"
Пример
ffmpeg -i input.mkv -c:v libx264 -vf "subtitles=input.mkv:stream_index=0" output.mkv
Параметрstream_index
является необязательным. Он начинается с нуля, поэтому stream_index=1
выберет второй поток субтитров в контейнере.
Для получения дополнительной информации см. документацию по фильтру «субтитры» здесьhttp://ffmpeg.org/ffmpeg-filters.html#subtitles
И общее руководство по фильтрации по этой ссылкеhttps://trac.ffmpeg.org/wiki/FilteringGuide