Fórum Ubuntu CZ/SK
Ubuntu pro osobní počítače => Software => Příkazový řádek a programování pro GNU/Linux => Téma založeno: Kony.cz 19 Prosince 2018, 12:39:38
-
Ahoj, mam soubor m3u a potřeboval bych z něho vyparsovat jen radky co potrebuji..
priklad :
#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
#EXTINF:0,#Text3
http://192.168.1.250/3.m3u
#EXTINF:0,#Text4
http://192.168.1.250/4.m3u
-
grep -i -A1 "text3\|text4" < '/cesta/k/suboru/subor'
-
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
-
U mna to vyzara takto
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
grep -V
grep (GNU grep) 3.1
Skusam to na ubuntu mate 18.04.1
-
Mam taky 18.04 to je divny teda
-
Tak nakoniec to robi aj mne pokial sa nevyhladavaju vyrazy ktore idu za sebou. Zmaz tie pomlcky
grep -i -A1 "text2\|text4" < '/home/t/Desktop/txt' | tr "-" " " | awk 'NF'
Pripadne som nasiel
grep -i --group-separator="" -A1 "text2\|text4" < '/home/t/Desktop/txt' | awk 'NF'
-
a ted je otazka..... a jeste vetsi orisek....
Co kdyz bude zapis takkovyto ??
#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
-
Skus toto
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.
-
Mohl bych poprosim jeste jedno info ?
zdroj.
#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
export blanik="$(grep -Eo -m1 '(http|https)://blanik_*' /opt/Radia/export.m3u8)"
ale to mi nebere
vyreseno