Szkriptek: Python, Perl, Bash, ...

perl regex többszörös selector

Üdv!

A perlre doksi szerint ha egy selector többször is értéket kap akkor az utolsó-t lehet kiolvasni belőle...
Egy bonyolultabb kifejezésben lenne szükségem arra hogy minden értékét megkapjam (mondjuk egy array-ba vagy ilyesmi) anélkül hogy szét kellene split-elnem a stringet.

Tehát pl ha ez után:

$text = 'aaa bbb ccc';
$text =~ /(?:(\w+)\s*)*/;

$1 értéke ['aaa', 'bbb', 'ccc'] lenne 'ccc' helyett

egyszeru problema

Udv.

van egy szriptem ami nem hajlando lefutni. elkezdtem keresgelni az okat, es arra jutottam, hogy nem
hajtodik vegre nehany parancs, ilyenek pl. a konyvtarvaltas, es a valtozo beallitas sem.
ezek parancssorban mukodnek, de a szkriptben mar sajnos nem. ez mitol lehet?


test:~ # cat proba.sh
#!/bin/sh
cd /root/X
test:~ # ./proba.sh
test:~ # cd /root/X
test:~/X #

az X egy szimbolikus link, de ugyanezt csinalja letezo konyvtarakkal is. rootkent csinalom, ugyehogy meg jogom is van hozza.

szerk: ezek alatt probaltam
GNU bash, version 4.1.0(1)-release (i686-pc-linux-gnu)
GNU bash, version 2.05b.0(1)-release (i586-suse-linux)
GNU bash, version 3.1.17(1)-release (i586-suse-linux)

perl regexp

Udv!

Egy mysql query reszt kellene atalakitanom, de nem igazan boldogulok vele hatekony modon - meg mashogy sem :- ).

Az eredeti query igy nez ki:


 rep_platform IN ('VALAMI1', 'VALAMI2', 'VALAMI3')

es valami ilyesmit szeretnek kapni belole:


 rep_platform LIKE '%VALAMI1%' or rep_platform LIKE '%VALAMI2%' or rep_platform LIKE 'VALAMI3'

.

Nyilvan az IN utani tombben levo elemek szama 1- tol n- ig valtozik (valami mindenkeppen van benne), es az aposztrofok kozotti resz NEM tartalmaz aposztrofot.

Koszi a valaszokat.

[MEGOLDVA] jogosultásgok átírása

Már nem tudom hanyadjára szaladok bele, hogy egy összetett könyvtár struktúrát és a benne lévő fájlokban kell átírnom a hozzáférési jogokat, a könyvtárakhoz o+x és o+r a fájlokhoz csak o+r . Persze én is írhatnék ilyet, de lusta vagyok és szerintem már ezret is írhattak belőle. Nem tudjátok hol találok egy kész ilyet?

MEGOLDÁS:
Nem kell semmilyen script, a következő parancs $chmod o+X -R * minden könyvtárat kereshetővé tesz, de a könyvtárakban lévő állományokat nem módosítja. Így ha az "other" felhasználó számára olvashatóvá, és kereshetővé akarunk tenni egy összetett könyvtár/állomány struktúrát a következő parancsokkal a gyökérkönyvtárból indulva megtehetjük:
$chmod o+X -R *
$chmod o+r -R *
ennyi :D

grep regexp és wildcard kérdés

Üdv!

Adott egy log fájl, ez itt egy részlete:

2010-01-13T18:07:42Z Judgement^7 was melted by ^1[ld50]^0-Houruck-^7's plasmagun
2010-01-13T21:22:13Z ^1[ld50]^0-Houruck-^7 was melted by Judgement^7's plasmagun

Egy olyan paraméterezés kellene, ahol regexp és wildcard együtt csak az első sorhoz hasonlókat dobja ki (Houruck[...]'s plasmagun végződésűeket). Ha pipeban simán átadom a mintákat, akkor mindkettőhöz hasonló sor megfelel. Ráadásul a mintában olyan karakterek is vannak, amiket grep reguláris kifejezésnek néz.

A grep -c "Houruck[^()]*s plasmagun" olyan eredményeket is számol, ahol én vagyok az áldozat. :]
Van valakinek javaslata?

Converter script bash -ban

Kaptam egy csomó .mpg videót. Csak mivel ebben nem igazán lehet tekerni, gondoltam újra convertálom őket .mp4-be, ezért csináltam egy kis scriptet.
Gondolom, más is hasznát veszi:

#!/bin/bash

FILE=( `echo $1 | sed -e 's/^\(.*\)\(\.[a-z]*\)$/\1 \2/i'` )
TMP="/tmp/`printf "%x\n" $[$RANDOM*$RANDOM]`"

function audioDump() {
mplayer -msglevel all=1 $1 -dumpaudio -dumpfile $2
}

function videoDump() {
mplayer -msglevel all=1 $1 -dumpvideo -dumpfile $2
}

function audioConvert() {
if [ ! -f "$TMP-audio.wav" ]; then
mplayer -msglevel all=1 $1 -ao pcm:file="$TMP-audio.wav"
fi

if [ ! -f "$TMP-rawaudio.aac" ] && [ -f "$TMP-audio.wav" ]; then
faac -c 48000 -b 192k -o "$TMP-rawaudio.aac" "$TMP-audio.wav"
fi
rm "$TMP-audio.wav"
}

function videoConvert() {
if [ ! -f "$TMP-firstpass.log" ]; then
# pass 1
mencoder -msglevel all=0 -mc 0 -noskip -ofps 25 -ovc x264 -x264encopts turbo=1:keyint=125:bitrate=2500:vbv_maxrate=5000:vbv_bufsize=660:cabac:direct_pred=auto:me=umh:me_range=16:scenecut=40:qcomp=0.6:qp_min=10:qp_max=51:qp_step=4:bframes=8:b_adapt:weight_b:b_pyramid:partitions=all:8x8dct:nofast_pskip:threads=auto:mixed_refs:chroma_me:pass=1 -nosound -passlogfile "$TMP-firstpass.log" -of rawvideo -o /dev/null $1
fi

if [ ! -f "$TMP-rawvideo.h264" ]; then
# pass 2
mencoder -msglevel all=0 -mc 0 -noskip -ofps 25 -ovc x264 -x264encopts turbo=1:keyint=125:bitrate=2500:vbv_maxrate=5000:vbv_bufsize=660:cabac:direct_pred=auto:me=umh:me_range=16:scenecut=40:qcomp=0.6:qp_min=10:qp_max=51:qp_step=4:bframes=8:b_adapt:weight_b:b_pyramid:partitions=all:8x8dct:nofast_pskip:threads=auto:mixed_refs:chroma_me:pass=2 -nosound -passlogfile "$TMP-firstpass.log" -of rawvideo -o "$TMP-rawvideo.h264" $1
fi

if [ -e "$TMP-rawvideo.h264" ] && [ -e "$TMP-rawaudio.aac" ]; then
MP4Box -lang HUN -add "$TMP-rawaudio.aac" -add "$TMP-rawvideo.h264" "${FILE[0]}.mp4"
fi
}

function audio() {
IN="$1"
OUT="$TMP-audio.pcm"

audioDump $IN $OUT
audioConvert $OUT

rm $OUT
}

function video() {
IN="$1"
OUT="$TMP-video${FILE[1]}"

videoDump $IN $OUT
videoConvert $OUT

rm $OUT
}

audio $1 &
video $1

rm "$TMP-firstpass.log" "$TMP-rawaudio.aac" "$TMP-rawvideo.h264"

Ha esetleg van optimalizálási javaslatod csak nyugottan!

Gyengén típusos nyelvek

Eddig csak erősen típusos nyelvekben programoztam komolyabb szinten. Egyetemi beadandók miatt néha használtam gyengén típusos nyelveket is. Kicsit szeretném megismerni ezt a szemléletet is, hogy ezekben pontosan mi is a jó, mert egyelőre sajnos nem látom.

Azt a részét értem, hogy mondjuk van egy számom és az mindegy, hogy short, int, double, float és csak számként kezelem és ez nekem jó. Amikor kisebb programokat írtam ilyen nyelveken (php, js, ruby), akkor én igazából típusosan programoztam, mert figyeltem a visszatérési értékekre stb. (hiába nem kell azokat megadni a függvény/metódus fejlécében) Amennyiben ettől elrugaszkodunk és mondjuk Ruby-ben egy metódus Stringet, máskor valamilyen számot, megint máskor meg mondjuk egy File objektumot ad vissza egy paramétertől függően, akkor olyan kódot írtunk, amit erősen típusos nyelvben nem tudunk. (Tudunk ha Object a visszatérési érték, de ez most mindegy.) Ekkor viszont az a probléma áll fent, hogy visszakapunk egy objektumot, amiről nem tudjuk, hogy milyen metódusait hívhatjuk meg, mert elvileg nem tudjuk a típusát.

Nem flame topikot akarok, hanem tényleg megérteni ezeknek a nyelveknek a lényegét, erejét.

RRD grafikon gyártás

Üdv!

Tudom, már volt egy hasonló topikom, de most mégis kicsit másról lenne szó...

Szeretnék hőmérsékleteket grafikonozni RRD-vel. A scriptem valahogy így néz ki: http://home.sinuslink.hu/stuff/temp.txt

Ez egy forgalmi statisztikákat generáló script átírata. Az eredeti script ilyet generál: http://home.sinuslink.hu/statistics.html

Az átírat pedig ilyeneket: http://home.sinuslink.hu/temperatures.html

Nem értem az okát, hogy a hőmérsékelt grafikonokon miért nincsenek adatok... Az adatbázisba bekerülnek a számok, tehát szerintem az ábrázolás lesz elszúrva, de nem tudom mi és hol... Akinek van ötlete jelezze :)

Köszi