Szkriptek: Python, Perl, Bash, ...

szubrutinból kilépés

Van egy bash szkriptem, mely meghív egy szubrutint, de az ha problémával találkozik akkor kilép. Persze, mert ott van hogy "exit".
Viszont úgy kéne kilépnem hogy az "exit" helyén CSAK a szubrutinból lépjen ki, ne a szkriptből. A szkriptnek tovább kéne futnia.
Mindenesetre most kipróbálom a "return" parancsot

Több sorból grep-pelés

Sziasztok!

Bizonyos okokból saját autoresponse scriptet írok, de belefutottam egy olyan problémába, hogy a ^From: után több sor van, és csak a végén van az email cím.
Valami ilyesmi:

From: blablablablablablablabla
blabla blablabla blabla
bla blablabla blabla kacsacsőr akarki@barhol.hu kacsacsőr

Hogy lehetne ezt értelmesen kiszedni a sorok közül?

Köszönöm!

ui: persze, ha van Reply-To, akkor azt keresem.

Python 2.7 könyv?

Python 2.7-hez keresek könyvet/könyveket magyar vagy angol nyelven.
Szeretnék legalább két könyvet beszerezni. Egyet ami nyelvvel foglalkozik az alapoktól, és egy másikat ami a beépített függvényeket és az alaptelepítéssel érkező modulokat mutatja be.

Érdekel hogy ki melyik könyvet ajánlja.

[MEGOLDVA] Perl HTTP header lekérdezési probléma

Sziasztok!

Adott egy évekkel ezelőtt megírt Icecast2 szervert lekérdező perl script ami a szerver headerét szedi le, viszont e script esetén a “http://streaming.radionomy.com:80/00s-dance-classics” lekérdezésekor nem a várt eredményt adja hanem ezt:


HTTP/1.0 401 Authentication Required
WWW-Authenticate: Basic realm="Icecast 2.3.3-kh8"

You need to authenticate

Ha viszont ugyanezt curl-al kérdezem le akkor azt hozza le amit kellene:


dev@dev:~/streaminfo# curl -I -X GET "http://streaming.radionomy.com:80/00s-dance-classics"
HTTP/1.1 200 OK
Content-Type: audio/mpeg
Date: Sat, 02 Apr 2016 07:33:26 GMT
icy-br:128
ice-audio-info: bitrate=128;samplerate=44100;channels=2
icy-br:128
icy-description:Classic dance hits from the 00s
icy-genre:Dance
icy-name:00sDanceClassics
icy-pub:1
icy-url:http://00s-dance-classics.playtheradio.com
Server: Icecast 2.3.3-kh8
Cache-Control: no-cache, no-store
Pragma: no-cache
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: Origin, Accept, X-Requested-With, Content-Type
Access-Control-Allow-Methods: GET, OPTIONS, HEAD
Connection: close
Expires: Mon, 26 Jul 1997 05:00:00 GMT

dev@dev:~/streaminfo#

A perl script ami eddig mindennel jól működött:


#!/usr/bin/perl

use IO::Socket::INET;
$socket=new IO::Socket::INET
(
PeerHost=>"streaming.radionomy.com",
PeerPort=>"80",
Proto=>"tcp",
Timeout=>2,
);
if($socket ne())
{
$req="GET /00s-dance-classics HTTP/1.0\r
Host: streaming.radionomy.com\r
\r
";
$size=$socket->send($req);
shutdown($socket,1);
$response=();
$socket->recv($response,1024);
$socket->close();
print "$response";
}

Mit rontottam el, ami ráadásul eddig jól működött?
A perl verziója:


dev@dev:~/streaminfo# perl -v | grep version
This is perl 5, version 20, subversion 2 (v5.20.2) built for i586-linux-gnu-thread-multi-64int
dev@dev:~/streaminfo#

Bash for Win10

A legjobb áprilisi tréfa amit évek óta olvastam. Hajnal óta egy csomó tech csatornán ez a hír pörög: A Microsoft a Canonicallal parterségben kihozza a Bash shell-t Windows 10-re. Ezt Kevin Gallo jelentette be a Build 2016 rendezvényen."This is not a VM. This is not cross-compiled tools. This is native."

Források:

Microsoft is adding the Linux command line to Windows 10

Microsoft is bringing the Bash shell to Windows 10

Bash comes to Windows - Microsoft BUILD 2016

Microsoft and Canonical partner to bring Ubuntu to Windows 10

:-)

Értelmetlen szavak a hunspell-ben?

Pici lányom nyelvtan háziját csinálom:)

A feladat: Milyen értelmes szó rakható ki a 'doliunk' betűkből?

írtam rá egy ilyet:


import itertools
import hunspell

hobj = hunspell.HunSpell('/usr/share/hunspell/hu_HU.dic', '/usr/share/hunspell/hu_HU.aff')
betűsor = 'doliunk'
permutációk = sorted(list(set([''.join(p) for p in itertools.permutations(betűsor)])))
helyes_permutációk = [ p for p in permutációk if hobj.spell(p) ] #csak akkor kerül bele a listába, ha a hunspell szerint helyes a szó
print("\n".join(helyes_permutációk))

és van benne pár meglepő eredmény. A teljes lista:

idolkun
idolunk
indokul
indulok
kondiul
kulidon
kunidol
oknudli
oldniuk

Ha akarom, épp mind lehet értelmes...

De egy másik sztringre már végképp vállalhatatlanok is előjönnek:
(szerk: ez a teljes lista)

köpültre
lükepört
pertökül
pertülök
pörtelük
pörtülke
repültök
röpültek
tökeprül
tökperül
tülökper
ükperölt
ükölpert
ülepkört

Miért? Vagy csak én vagyok fantáziátlan?

mediainfo subdirectory

Egy olyan lista érdekelne, melyben össze van gyűjtve mondjuk az avi fájlokról, hogy az adott fájlnak mi a neve, mérete, codec-e, sztereó-e stb.
Úgy vettem észre hogy ezeket az infókat a mediainfo paranccsal csak egyesével tudom kinyerni.

files="*.avi"
for i in ${files} ; do
filename=$(mediainfo --Inform=General\;%CompleteName% "${i}")
format=$(mediainfo --Inform=General\;%Format% "${i}")
filesize=$(mediainfo --Inform=General\;%FileSize/String% "${i}")
duration=$(mediainfo --Inform=General\;%Duration/String% "${i}")
aspect=$(mediainfo --Inform=Video\;%DisplayAspectRatio/String% "${i}")
codec=$(mediainfo --Inform=Video\;%CodecID/Hint% "${i}")
wh=$(mediainfo --Inform=Video\;%Width%x%Height% "${i}")
acodec=$(mediainfo --Inform=Audio\;%CodecID/Hint% "${i}")
chan=$(mediainfo --Inform=Audio\;%Channels% "${i}")
ster=$(mediainfo --Inform=Audio\;%Format_Settings_ModeExtension% "${i}")
bitrate=$(mediainfo --Inform=Audio\;%BitRate/String% "${i}")
lang=$(mediainfo --Inform=Audio\;%Language% "${i}")
echo ${filename} - ${format}, ${filesize}, ${duration}, ${aspect}, ${wh}, ${chan}, ${ster}, ${codec}, ${acodec}, ${bitrate}, ${lang} >> movie.lst
done

Ez a kis kód még működik is, de arra még nem jöttem rá, miként oldjam meg, ha az avi fájlok almappákban vannak?
Ha esetleg létezik egyszerűbb módszer azt is megköszönöm.

# if true ; then ; fi syntax error...

# if true ; then ; fi
-sh: syntax error near unexpected token `;'

Rajtam kívül mindenki tudta, hogy a then és a fi között muszáj valaminek lennie, különben syntax error lesz? :)
Most ezért nem futott egy ideje egy cron job, mert kikommenteltem az egyetlen parancsot a then és a fi között, mert már nem kellett, de mégse akartam az egészet if-et kitörölni...

MEGOLDVA - Python - modulok kereszt-importja

Sziasztok!

Nem tudom találkozott-e valaki az alábbi problémával. 2.7.11-es pythonra gondoltam.

Adott két python file legyen ez most a.py ("a") és b.py ("b").

Az "a" tartalmazza a main()-t és egyéb függvényeket, a "b" egy osztályt amiben egyéb dolgokat hajtok végre.

Alapvetően az "a"-ba importálom "b"-t, egy az egyben, tehát vagy "import b" vagy "from b import *", stb. ez eddig oké, működik is ahogy kell.

A gond akkor kezdődik amikor a "b"-ben akarnék használni egy "a"-ban található függvényt, mert mihelyst beírom a "b.py"-be szintúgy hogy "import a" vagy "from a import *" vagy "from a import vmi-fuggveny", abban a pillanatban már az "a" elakad és nem találja a "b" függvényt (amiben meghívnám az "a"-ban találhatót), mert nyilván gondolom a kereszthivatkozás a sorrendben feloldódás miatt megakad.

Van valakinek ötlete a modulok kereszthivatkozásának megoldására?

Köszi!

Speedtest-cli pontatlan. Nagyon

Sziasztok!

Érdeklődnék, hogy a speedtest.net CLI script-je nálotok is pontatlan-e az utóbbi időben?

Olyan helyen, ahol simán tudok axel-el (többszálas wget) letölteni akár 4-500mbps-el, mértem kb 10-20mbps-t.
Az asztali gépemen is töredékét mutatja, mintha a flash-es mérőkével nézem.
Érdekes módon, pl Hetzner-nél lévő gépen jó a mérés (hazai szerverre is).