Fórum Ubuntu CZ/SK

Ubuntu pro osobní počítače => Příkazový řádek a programování pro GNU/Linux => Téma založeno: Kony.cz 19 Prosinec 2018, 12:39:38

Název: parsovani souboru
Přispěvatel: Kony.cz 19 Prosinec 2018, 12:39:38
Ahoj, mam soubor m3u a potřeboval bych z něho vyparsovat jen radky co potrebuji..

priklad :
Kód: [Vybrat]
#EXTM3U
#EXTINF:0,#Text1
http://192.168.1.250/1.m3u
#EXTINF:0,#Text2
http://192.168.1.250/2.m3u
#EXTINF:0,#Text3
http://192.168.1.250/3.m3u
#EXTINF:0,#Text4
http://192.168.1.250/4.m3u

a ja bch treba potreboval vyparsovat pouze

Kód: [Vybrat]
#EXTINF:0,#Text3
http://192.168.1.250/3.m3u
#EXTINF:0,#Text4
http://192.168.1.250/4.m3u
Název: Re:parsovani souboru
Přispěvatel: TIBOR 19 Prosinec 2018, 14:48:00
Kód: [Vybrat]
grep -i -A1 "text3\|text4" < '/cesta/k/suboru/subor'
Název: Re:parsovani souboru
Přispěvatel: Kony.cz 19 Prosinec 2018, 15:16:39
Kód: [Vybrat]
root@kony-server:~# grep -i -A1 "Text2\|Text4" < 'test.m3u'
#EXTINF:0,#Text2
http://192.168.1.250/2.m3u
--
#EXTINF:0,#Text4
http://192.168.1.250/4.m3u

ale dava tam ty pomlcky.. a to neni moc dobre
Název: Re:parsovani souboru
Přispěvatel: TIBOR 19 Prosinec 2018, 15:50:45
U mna to vyzara takto
Kód: [Vybrat]
grep -i -A1 "text3\|text4" < '/home/t/Desktop/txt'
#EXTINF:0,#Text3
http://192.168.1.250/3.m3u
#EXTINF:0,#Text4
http://192.168.1.250/4.m3u
asi mame rozne verzie grep
Kód: [Vybrat]
grep -V
grep (GNU grep) 3.1
Skusam to na ubuntu mate 18.04.1
Název: Re:parsovani souboru
Přispěvatel: Kony.cz 19 Prosinec 2018, 16:51:57
Mam taky 18.04 to je divny teda
Název: Re:parsovani souboru
Přispěvatel: TIBOR 19 Prosinec 2018, 17:12:49
Tak nakoniec to robi aj mne pokial sa nevyhladavaju vyrazy ktore idu za sebou. Zmaz tie pomlcky
Kód: [Vybrat]
grep -i -A1 "text2\|text4" < '/home/t/Desktop/txt' | tr "-" " " | awk 'NF'Pripadne som nasiel
Kód: [Vybrat]
grep -i --group-separator="" -A1 "text2\|text4" < '/home/t/Desktop/txt' | awk 'NF'
Název: Re:parsovani souboru
Přispěvatel: Kony.cz 19 Prosinec 2018, 20:42:48
a ted je otazka..... a jeste vetsi orisek....

Co kdyz bude zapis takkovyto ??

Kód: [Vybrat]
#EXTVLCOPT:test 1
http:/192.168.1:250/1.m3u
#EXTINF:0,test 2
#EXTVLCOPT:network-caching=1000
http:/192.168.1:250/2.m3u
#EXTINF:0,test 3
#EXTVLCOPT:network-caching=1000
http:/192.168.1:250/3.m3u
#EXTINF:0,test4
http:/192.168.1:250/4.m3u

proste u nekterych radku bude vic podradku.. potom tam nemuzu pouzit prikaz co si poslal, protoze ten pocita radek +1... ale co kdyz nekdy bude radek +2

pak by se muselo pocitat ze zacatek a konec je #EXTINF
Název: Re:parsovani souboru
Přispěvatel: TIBOR 19 Prosinec 2018, 22:45:34
Skus toto
Kód: [Vybrat]
cat '/home/t/Desktop/txt' | sed 's/#EXTM3U//g' | tr "\n" "@" | sed 's/m3u/m3u\n/g' | grep -i "test 1\|test 4" | tr "@" "\n" | awk 'NF'
Namiesto zavinaca pouzi znak ktory sa urcite nebude v subore vyskytovat.
Principom je ze si vytvorime riadky konciace na m3u, to znamena ze za m3u nasleduje # rovnako ako je prvy znak ktory spracovavame. Je jedno kolko riadkov povodne bolo medzi tymito znakmi. Povodne konce riadkov som si oznacil spec znakom v tomto pripade @. Ked to mame tak si vygrepujeme iba riadky ktore chceme a pomocou spec znaku ich zasa prevedieme do povodneho formatu. Bud 2 alebo 3 riadky.
Název: Re:parsovani souboru
Přispěvatel: Kony.cz 12 Leden 2019, 15:43:25
Mohl bych poprosim jeste jedno info ?
zdroj.

Kód: [Vybrat]
#EXTM3U
#EXTINF:-1 $ExtFilter="Radio" group-title="" tvg-name"Evropa 2" tvg-id="Evropa2" tvg-logo="evropa2.png",Evropa 2
https://adresaserveru/evropa2_sflkjgslkjsdklfsdlfjksdfsdfs/index.m3u8?token=5773920
#EXTINF:-1 $ExtFilter="Radio" group-title="" tvg-name"Blanik" tvg-id="Blaník" tvg-logo="blanik.png",Blanik
https://adresaserveru/blanik_sflkjgslkjsdklfsdlfjksdfsdfs/index.m3u8?token=5773920

a

potreboval bych exportovat radek na kterem se treba nachazi blanik_

zkousim toto

Kód: [Vybrat]
export blanik="$(grep -Eo -m1 '(http|https)://blanik_*' /opt/Radia/export.m3u8)"

ale to mi nebere

vyreseno