Szkriptek: Python, Perl, Bash, ...

Magyarázatot kérek egy rövid szubrutinhoz

sziasztok,

van egy működő példa, amit nem értek.
Próbáltam volna debuggerrel követni a változókat, az szokott segíteni felfogni a kódot, de most "Szegmentálási hiba"-val elszáll a padre debuggere.

Már a 3. sorral gondjaim vannak :)
Továbblépni nem szeretnék, amíg ezt meg nem értem.

Minden segítő szándékot előre köszönök!

Shell script kérdés

Sziasztok,

Van egy kb 400000 sor hosszú log, ami kb. fél éve gyűlik, az alábbi formátumban:

Apr 04 20:32:10 event01
Apr 04 20:32:13 event05
Apr 04 20:32:21 event02
Apr 04 20:33:02 event01
...

Ebből kellene kinyerni minden egyes event-re, hogy egy tetszőlegesen válaszott 60 perces vagy 24 órás időszakban az adott esemény hányszor következett be.
Tulajdonképpen azt kell megkapni, hogy mekkora az a legkisebb rate-limit, ami még nem akadályozta volna.

Sajnos most nem akar összeállni, hogy hogyan tudnám ezt kinyerni. Ha valakinek van rá jó ötlete, netán megoldása, azt hálásan megköszönném.

Furcsa perl regex viselkedés

Hello,

van ez a nem túl komplikált perl szkript: code

A bemeneti fájl szinten elég egyszerű: text

A 27. sorban lévő regex akkor match-el ha:
- Ez az egyedüli regex a while loop-ban
- Mind a 3 regex szerepel a while loop-ban (Sorok: 18, 22, 27)

Abban az esetben ami linkelve van (csak 18. és a 27. sorban levő regex van a while loop-ban) akkor a 27-es sorban levő regex nem fog match-elni. Nekem úgy tűnik, hogy a 18. sorban lévő regex "elrontja" a 27-ben lévőt. Nem igazán értem az okát. Két különböző perl verzióval próbáltam.
Valakinek valami ötlet?

Perl CGI - nem azt csinálja, amit kell-

Sziasztok,
vége felé haladok a perl könyvnek, eddig sikeresen végigcsináltam a gyakorlatokat, de ez most kifogott rajtam.
Szeretnék építő jellegű segítséget kérni (hol szúrtam el, hogy jöttél rá, hogyan javítsam ki) és nem egy <300 byte-ba bezsúfolt hatékony teljesen új kódot.
A feladat ez volt:
Írjunk CGI vendégkönyvet, amely lehetővé teszi, hogy a felhasználók egysoros megjegyzéseket fűzzenek a weboldalhoz.
Működik, de rosszul.
Minden bejegyzést rögzít a vendégkönyvben, de csak mindem 2-at írja ki az oldalon. Miért?

A 498_4.txt lenne a vendégkönyv, a 498_4.pl pedig amit itt látsz.

Script írása -segítség kérés-

Sziasztok.

A legtöbb dolgot megoldottam eddig különböző script nyelveken, de most elakadtam.

Van két forrásom (m3u-k):

Egyik:

#EXTINF:0, Vegyes - m1
http://192.168.1.10:8001/1:0:1:778D:2C2:600:E080000:0:0:0:
#EXTVLCOPT:program=4040
#EXTINF:0, Vegyes - M1 HD
http://192.168.1.10:8001/1:0:1:FC8:D:1:E082E2F:0:0:0:
#EXTVLCOPT:program=30607
#EXTINF:0, Vegyes - m2 / Petofi
http://192.168.1.10:8001/1:0:1:778F:2C2:600:E080000:0:0:0:
...

(A fájl ugyanilyen formában folytatódik tovább )

Másik:

#NAME Tvheadend Channels
#SERVICE 1:0:0:0:0:0:0:0:0:0:http%3A%2F%2F192.168.1.11%3A9981%2Fstream%2Fchannelid%2F208258153&profile=pass:m1
#DESCRIPTION m1
#SERVICE 1:0:0:0:0:0:0:0:0:0:http%3A%2F%2F192.168.1.11%3A9981%2Fstream%2Fchannelid%2F99578265&profile=pass:m2 / Petofi
#DESCRIPTION m2 / Petofi
...

(A fájl ugyanilyen formában folytatódik tovább )

Arra keresnék valami megoldást, hogy ilyen végeredményt kapjak:


#NAME Tvheadend Channels
#SERVICE 1:0:1:778D:2C2:600:E080000:0:0:0:http%3A%2F%2F192.168.1.11%3A9981%2Fstream%2Fchannelid%2F208258153&profile=pass:m1
#DESCRIPTION m1
#SERVICE 1:0:1:778F:2C2:600:E080000:0:0:0:http%3A%2F%2F192.168.1.11%3A9981%2Fstream%2Fchannelid%2F99578265&profile=pass:m2 / Petofi
#DESCRIPTION m2 / Petofi

Tehát a megfelelő sorokban a " 1:0:0:0:0:0:0:0:0:0 " részt kellene az ezzel megfelelő másik fájl sorából cserélni.
A csatornák nevei azonosak, így az alapján összerendelhetőek.

Hogyan lehetne ezt egy scriptből megoldani, aminek megadom két fájlt és szépen összerendeli és kiköpi egy harmadikként az eredményt.

Köszönöm

Van itt valaki, aki rendszeresen programozgat GUI-t, python3 alatt?

Érdekelne, hogy van-e élő ember, aki rendszeresen készít GUI-s programokat python3-ban?
Ha van: milyen grafikus keretrendszert használ?

Az elsődleges gond, hogy python3 alatt kellene működnie, ami sok esetben problémás, mert a 2-es csomagok igen nagy hányada nem lett portolva, így nem tudom, a grafikus keretrendszerekkel mi a helyzet.

A másodlagos a tisztességes/elfogadható doksi. Kezdtem a tkinter-rel, de már az elején elakadtam, mert egészen alapvető dolgok nincsenek normálisan dokumentálva a megtalált leírásokban.
Előszedtem a Qt-t.
PyQt5 lenne most az aktuális, épp csak pár felszínes tutorial áll rendelkezésre és mellette a Qt5 dokumentáció, mert a PyQt5 sajátjában csak hivatkozások vannak a C++ doksira.
PySide2 lenne az alternatíva, de Ubuntu LTS (16.04) alatt csak PPA-ból lehetne feltenni valamit, amiről egyelőre nincs bővebb infóm, apt, snap, pip3 nem tud róla.

Szóval érdekelne, használ-e itt valaki ilyesmit és ha igen, akkor mit?

Tkinter Frame, dinamikus mérettel

https://github.com/haa-zee/tkinter-tutorial/blob/master/2nd_ablak1.py

Van ez a csodás kis szkript.
Azt szeretném, hogy a Frame ne fix méretű legyen, hanem igazodjon a "root" ablak méretéhez.
Pár variációt kipróbáltam, de sehogy sem akar összejönni. A sticky összes verzióját beleértve. Valamit nagyon félreértek...
(a relief sem akar működni valamiért, de annak még nem jártam utána)

én vagyok a béna, vagy valami mágia van?

Terminálban kiadva az alábbi parancsot: opera-developer --version megkapom a verziószámot.
No de ha ezt beteszem egy bash szkriptbe:

installed_version=`opera-developer --version`
installed_version=$(opera-developer --version)
installed_version="$(opera-developer --version)"
echo teleptett verzió - $installed_version

Egyszerűen nincs eredmény. Így reménytelen a frissítési mechanizmus. De már a telepítés során is hülyeségeket írt ki. Hogy nincs munkakönyvtár vagy valami. Holott a program elindul, működik.

Bash magic - asszociatív tömb

Minap ebbe futottam a stackoverflow-n
https://stackoverflow.com/questions/3112687/how-to-iterate-over-associa…
foreach(){
arr="$(declare -p $1)" ; eval "declare -A f="${arr#*=};
for i in ${!f[@]}; do $2 "$i" "${f[$i]}"; done
}
$ bar(){ echo "$1 -> $2"; }
$ declare -A foo["flap"]="three four" foo["flop"]="one two"
$ foreach foo bar
flap -> three four
flop -> one two

valaki eltudja magyarázni az f="${arr#*=} változót?