Usando sed :
sed "/^http/s/=.*/=$(<token.txt)/" playlist.m3u
Com o exemplo dado, isso produziria
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
O comando sed primeiro encontra qualquer linha que comece com http e substitua tudo após o primeiro = nessas linhas com o conteúdo do arquivo token.txt (esse arquivo deve conter apenas o novo token em um linha).
Isso funciona permitindo que o shell expanda a substituição do comando $(<token.txt) dentro da parte de substituição da substituição. Isso insere o conteúdo do arquivo na expressão sed .
Para atualizar o arquivo, use sed com sua opção -i ou redirecione a saída para um novo arquivo e renomeie:
sed "/^http/s/=.*/=$(<token.txt)/" playlist.m3u >new && mv new playlist.m3u
A remoção de ^ de ^http faria com que sed procurasse http em qualquer lugar da linha, não apenas no início. Remova ^ se você tiver mais dados em frente ao URL.