Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: parsovani souboru  (Přečteno 10398 krát)

Kony.cz

  • Aktivní člen
  • *
  • Příspěvků: 289
parsovani souboru
« kdy: 19 Prosince 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

TIBOR

  • Závislák
  • ***
  • Příspěvků: 6529
  • Som uzivatel linuxovej distribucie, som linuxak?
Re:parsovani souboru
« Odpověď #1 kdy: 19 Prosince 2018, 14:48:00 »
Kód: [Vybrat]
grep -i -A1 "text3\|text4" < '/cesta/k/suboru/subor'
HP Laptop 17-ca1xxx Ubuntu Mate 22.04 FF 64bit.
Asus X751LB-TY014H Ubuntu Mate 20.04.1 FF 64bit.
Linus, Lajnas, Línus, Luínus, Lajnus a je mi naozaj jedno, ako ľudia vyslovujú moje meno. Ale "Linux" je vždy "Linux". LINUS TORVALDS, tvorca Linuxového jadra.(V dokumente Revolution OS)

Kony.cz

  • Aktivní člen
  • *
  • Příspěvků: 289
Re:parsovani souboru
« Odpověď #2 kdy: 19 Prosince 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

TIBOR

  • Závislák
  • ***
  • Příspěvků: 6529
  • Som uzivatel linuxovej distribucie, som linuxak?
Re:parsovani souboru
« Odpověď #3 kdy: 19 Prosince 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
HP Laptop 17-ca1xxx Ubuntu Mate 22.04 FF 64bit.
Asus X751LB-TY014H Ubuntu Mate 20.04.1 FF 64bit.
Linus, Lajnas, Línus, Luínus, Lajnus a je mi naozaj jedno, ako ľudia vyslovujú moje meno. Ale "Linux" je vždy "Linux". LINUS TORVALDS, tvorca Linuxového jadra.(V dokumente Revolution OS)

Kony.cz

  • Aktivní člen
  • *
  • Příspěvků: 289
Re:parsovani souboru
« Odpověď #4 kdy: 19 Prosince 2018, 16:51:57 »
Mam taky 18.04 to je divny teda

TIBOR

  • Závislák
  • ***
  • Příspěvků: 6529
  • Som uzivatel linuxovej distribucie, som linuxak?
Re:parsovani souboru
« Odpověď #5 kdy: 19 Prosince 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'
« Poslední změna: 19 Prosince 2018, 22:26:30 od TIBOR »
HP Laptop 17-ca1xxx Ubuntu Mate 22.04 FF 64bit.
Asus X751LB-TY014H Ubuntu Mate 20.04.1 FF 64bit.
Linus, Lajnas, Línus, Luínus, Lajnus a je mi naozaj jedno, ako ľudia vyslovujú moje meno. Ale "Linux" je vždy "Linux". LINUS TORVALDS, tvorca Linuxového jadra.(V dokumente Revolution OS)

Kony.cz

  • Aktivní člen
  • *
  • Příspěvků: 289
Re:parsovani souboru
« Odpověď #6 kdy: 19 Prosince 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
« Poslední změna: 19 Prosince 2018, 20:44:30 od Kony.cz »

TIBOR

  • Závislák
  • ***
  • Příspěvků: 6529
  • Som uzivatel linuxovej distribucie, som linuxak?
Re:parsovani souboru
« Odpověď #7 kdy: 19 Prosince 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.
« Poslední změna: 19 Prosince 2018, 22:57:14 od TIBOR »
HP Laptop 17-ca1xxx Ubuntu Mate 22.04 FF 64bit.
Asus X751LB-TY014H Ubuntu Mate 20.04.1 FF 64bit.
Linus, Lajnas, Línus, Luínus, Lajnus a je mi naozaj jedno, ako ľudia vyslovujú moje meno. Ale "Linux" je vždy "Linux". LINUS TORVALDS, tvorca Linuxového jadra.(V dokumente Revolution OS)

Kony.cz

  • Aktivní člen
  • *
  • Příspěvků: 289
Re:parsovani souboru
« Odpověď #8 kdy: 12 Ledna 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
« Poslední změna: 12 Ledna 2019, 16:47:40 od Kony.cz »

 

Provoz zaštiťuje spolek OpenAlt.