Я пытаюсь пакетно отредактировать многострочный файл M3U с помощью sed с содержимым, подобным следующему:
#EXTINF:-1 tvg-id="NBC.us" tvg-name="NBC US" tvg-logo="http://example.com/NBC.us.png" tvg-chno="12" group-title="United States",NBC
Я хотел бы найти / заменить, чтобы в итоге получилось что-то вроде следующего:
#EXTINF:-1 tvg-id="NBC.us" tvg-name="NBC" tvg-logo="http://example.com/NBC.us.png" channelid="12" group-title="United States",NBC
Другими словами, мне нужно найти / заменить tvg-chno
на channelid
И скопировать строку из (не включая) последнего ,
в конец строки и использовать еепереписать содержимое tvg-name
.У меня есть команда sed, работающая с первым битом, и битая команда не совсем работает, как предназначено для второй, следующим образом:
sed -i 's/tvg-chno/channel-id/g' test.m3u
sed -i 's/\(.*tvg-name="\)\(.*"\)\(.*",\)\(.*\)/\1\4\3\4/g' test.m3u
Вторая команда sed выдает:
#EXTINF:-1 tvg-id="NBC.us" tvg-name="NBCUnited States",NBC
Iнадеялся, что сможет выполнить все преобразования в одну строку, если это возможно.
Спасибо за любую помощь!