Hneď v úvode napíšem čo je to oscam a na čo sa používa. Oscam je open source software napísaný v jazyku C a používa sa ako SW emulácia, ktorá nahrádza HW CAM (Conditional-access module). Viac o tomto skvelom projekte je možné nájsť na Oscam wiki
V DVB terminológii má každý kanál tzv. identifikátor, čo je 4 znakové hexadecimálne číslo a označujeme ho SID (Service ID). Takéto SIDs je možné stiahnuť z internetu, napr. z tohto webu, ale SIDs nám generuje aj samotný oscam ak máme správne nastavené dvbapi
read_sdt = 1
write_sdt_prov = 1
Vygenerované SID (resp. srvid) z oscamu vyzerá následovne
1329:0668,069A,0624,0D96,0500@051910|Jednotka|TV||Towercom 132A:0668,069A,0624,0D96,0500@051910|Dvojka|TV||Towercom 132F:0668,069A,0624,0500@051910|Trojka|TV||Towercom 3731:0624,0D96,0500@051910|Markiza HD|TV||M7 Group 372D:0D96,0624,0500@051910|Markiza +1 HD|TV||M7 Group 3398:0D96,0624,0500@051910|TV JOJ HD|TV||M7 Group 3358:0D96,0624,0500@051910|TV JOJ +1 HD|TV||M7 Group 3399:0D96,0624,0500@051910|JOJ PLUS HD|TV||M7 Group 3397:0624,0D96,0500@051910|DAJTO HD|TV||M7 Group 3732:0D96,0624,0500@051910|DOMA HD|TV||M7 Group 1328:0668,0624,0500@051910|TA3 HD|TV||Towercom
Kde prvé 4 znaky sú SID (resp. srvid), ktoré potrebujeme. Za dvojbodkou oddelené čiarkami sú CAID jednotlivých kódovacích systémov. Ďalej nasleduje názov služby, typ služby a poskytovateľ služby. Ak si srvid stiahneme, tak štruktúra je veľmi podobná
0D03,0D70,0D96,0624:1794|SkyLink|Boomerang CZ 0D03,0D70,0D96,0624:17ae|SkyLink|TravelXP HD 0D03,0D70,0D96,0624:17b0|SkyLink|Film Europe+ HD 0D03,0D70,0D96,0624:17ea|SkyLink|Fightbox 0D03,0D70,0D96,0624:17eb|SkyLink|Hobby TV Czech 0D03,0D70,0D96,0624:17ed|SkyLink|Retro Music Television 0D03,0D70,0D96,0624:1810|SkyLink|Adventure TV Czech
Tu vidíme, že srvid je až v piatom stĺpci. Teraz už prejdeme k veci a ideme si upraviť náš súbor do takej podoby ako ho potrebujeme. Vzhľadom k tomu, že niektorí poskytovatelia majú vytvorené rôzne balíčky z rôznymi TV kanálmi, tak tie riadky, ktoré sa nám nehodia musíme jednoducho ručne odstrániť. Pre services teraz potrebujeme spraviť takú štruktúru, že všetky srvid (SID) musia byť uložené v jednom riadku a oddelené čiarkou. Ak by sa jednalo o úpravu 5-10 riadkov, tak to spravíme ručne, čo by bolo aj tak dosť pracné, ale ak máme upravovať 70, alebo 100 riadkov, tak by sme sa pri ručnej úprave asi zbláznili. Nie je nič jednoduchšie ako použiť jednoduchý skript
cut -c21-24 /path_to_file/oscam.srvid | tr '\n ' ',' > /path_to_file/services.txt
Skript spraví to, že odstrihne v každom riadku znaky od pozície 21 až po 24, kde nám vznikne stĺpec v ktorom sú len SIDs. Na konci každého SIDs je znak konca riadku čiže \n a mi to cez rúru nahradíme obyčajnou čiarkou a pošleme namiesto štandardného výstupu do súboru. Vznikne nám súbor s takouto štruktúrou a tento už vieme použiť ako services.
1794,17ae,17b0,17ea,17eb,17ed,1810,
Záver
V tomto krátkom blogu som chcel len vyzdvihnúť ako jednoducho je v linuxe cez terminál za pomoci nástrojov ako je cut, tr, alebo aj awk, sed atď. upravovať rôzne textové, resp. konfiguračné súbory.