Использованиеsed
:
sed "/^http/s/=.*/=$(<token.txt)/" playlist.m3u
В данном примере это даст
EXTM3U
EXTINF:-1,Channel 1
EXTVLCOPT:network-caching=1000
http://myurl.com/index.m3u8?token=xd2111Vf124FfmrfJ22fag
EXTM3U
EXTINF:-1,Channel 2
EXTVLCOPT:network-caching=1000
http://myurl.com/index2.m3u8?token=xd2111Vf124FfmrfJ22fag
Команда sed
сначала находит любую строку, начинающуюся с http
, а затем заменяет все после первой =
в этих строках содержимым файлаtoken.txt
(этот файл должен содержать только новый токен в одной строке ).
Это работает, позволяя оболочке расширять подстановку команд $(<token.txt)
внутри замещающей части подстановки. Это вставит содержимое файла в выражение sed
.
Чтобы обновить файл на месте, используйте sed
с опцией -i
,или перенаправить вывод в новый файл и переименовать его:
sed "/^http/s/=.*/=$(<token.txt)/" playlist.m3u >new && mv new playlist.m3u
Удаление ^
из ^http
заставит sed
искать http
в любом месте строки, а не только в начале. Удалите ^
, если у вас есть дополнительные данные перед URL-адресом.
я нашел это своим нубским способом, сначала выполнивls /dev/disk/by-path/pci-0000\:02\:00.1-ata-6
(с помощью табуляции, чтобы вывести список всех ссылок/файлов и перейти к ata -6 ), а затем lsblk /dev/disk/by-path/pci-0000\:02\:00.1-ata-6
и получить точку монтирования устройства/ размер/название.