Szkriptek: Python, Perl, Bash, ...

awk aposztrof (') kiiratás

Udv mindenkinek!

Egy gyors kérdésem lenne:
egy sql forras minden soranak a vegere ki kell irnom
egy aprosagot "'" jelek kozott.
Aztan ala irni az eredeti sort.
Viszont az awk konzolbol ezt nem teszi, mert
a parancs lezarasanak tartja az emlitett karaktert.
Kerdes: hogy oldhatnam meg a feladatot awk-val, vagy anelkul?

Probaltam siman bash-bol, hogy IFS="\n", aztan for ciklusok, de
ez nem minden esetben volt teljesen megbizhato, meg tobb
vele a macera is.

koszonom a segitseget

--
PtR

PERL lamdaemon.pl help wanted

Help!

Éppen az LDAP-account-managerrel szívok (http://lam.sourceforge.net). Ez egy webes app, ami tölti-üríti az ldap-ot, ÉS ELVILEG MEGCSINÁLJA AZ USEREK HOMEKÖNYVTÁRÁT IS, VALAMINT BEÁLLÍTJA A QUOTAT, méghozzá egy lamdaemon.pl perscriptet meghívva.

A kvótabeállítás megy is, de ha meg akarom csináltatni a homekönyvtárat, akkol a procihasználat felmegy 100%-ra, felbőgnek a ventillátorok, és seemi nem történik, amíg ki nem killelem a processzt.
Perl-hez egyáltalán nem értek, de azért egy elég tahó debuggolást tettem a scriptbe, (bizonyos pontoknál egy echo-t nyomatok egy file-ba, hogy itt már járt a script) és ez az alábbiakat hozta:

- ha akarok homekönyvtárat is, akkor a script az alábbi sornál nem megy tovább, hanem eszi a procit, én meg a kefét:
my $string = do {local $/;};
- ha itt kikillelelm a processzt, akkor egy kicsit tovább is fut.

A script a webes résztől stdin-en át kapja a paraméterlistát, ezt tudom. de miért döglik itt meg?

ha valaki rohadtul elszánt, akkor itt a teljes csomag, benne a lamdaemon.pl file-val.
http://prdownloads.sourceforge.net/lam/ldap-account-manager_1.0.3-1_all…

bash: 2 időpont összehasonlítása

Sziasztok!

Össze lehet valahogy hasonlítani egyszerűen 2 időpontot, amik mondjuk a date alap kimeneti formájában vannak megadva?

Annyi érdekel csak, hogy mikor >=, ill <.

Persze lehetne, hogy mindkettőt átkonvertálom unix timestamppé, úgy elég egyszerű összehasonlítani őket, de van esetleg valami egyszerűbb módja a dolognak?

rtf2txt

Egy P1 120-as notin (48M RAM) szeretnék rtf formátumú könyveket olvasni, dsl linux-al. A ted nekem nagyon nem jött be, mert ezen a gépen lassú, és nem is minden rtf-et nyit meg.
Ezért úgy gondoltam, hogy az rtf-eket txt-vé alakítom, és konzolból olvasom őket.

A konvertálással viszont gondom van:
- a catdoc gyors (5s per könyv), de a magyar ékezetes karaktereket elrontja: (é helyett e, ö helyett ?, stb), méghozzá úgy, hogy a sed-el nem tudom őket helyreállítani
- az rtfreader-el ugyanez a baj, csak ez látszólag egy digites hexa számokkal (1-F) helyettesíti az ékezetes karaktereket (ami szintén nem dolgozható meg a sed-el, mert nem lehet tudni, hogy pl. az 1-es tényleg egy egyes, vagy egy é betű-e az eredeti szövegben)

Ezért aztán írtam egy saját szkriptet, ami elég jól és ékezethelyesen átalakítja az rtf-et txt-be, csak az a baja, hogy kegyetlenül lassú; ezen a gépen kb. 5 perc/könyv. Lehetne ezt úgy optimalizálni, hogy kb. 5-ször ilyen gyors legyen?

Itt a szkript:

cat | sed '1,/pgdscno0/d' | sed -e 's/\\\(keepn\|aspalpha\|rdblquote\|dbch\|par \|pard\|plain \|ltrpar\|qc\|qj\|\*\|rtlch\|ltrch\|endash\|loch\)//g' -e 's/\\\(revtim\|creatim\|updnprop\|langfe\|hyphen\|hyphlead\|hyphtrail\|hyphmax\|deftab\)[0-9]*//g' -e 's/\\\(vern\|info\|page\|lang\)[0-9]*//g' -e 's/\\\(rin\|afs\|lin\|min\)[0-9]*//g' -e 's/\\\(yr\|mo\|dy\|hr\|up\|cs\|ai\|af\|li\|ri\|cf\|fs\|fi\|sb\|sa\|ab\)[0-9]*//g' -e 's/\\\(s\|f\|i\|b\)[0-9]*//g' -e "s/\\\'e9/é/g" -e "s/\\\'e1/á/g" -e "s/\\\'fa/ú/g" -e "s/\\\'f3/ó/g" -e "s/\\\'ed/í/g" -e "s/\\\'fc/ü/g" -e "s/\\\\u337 ?/ő/g" -e "s/\\\'f6/ö/g" -e "s/\\\u369 ?/ű/g" -e "s/\\\'d3/Ó/g" -e "s/\\\'c1/Á/g" -e "s/\\\'c9/É/g" -e "s/\\\'cd/í/g" -e "s/\\\\u336 ?/Ő/g" -e "s/\\\'d6//g" -e "s/\\\'da/Ú/g" -e "s/\\\\u368 ?/Ű/g" -e "s/\\\'d6/Ö/g" -e 's/\({\|}\)//g' | sed -f /usr/local/bin/splitlines.sed | sed '/^$/d'

A splitlines.sed a szóközöknél nagyjából egyenlő hosszú sorokra tördeli a szöveget, ezen nem hiszem, hogy lehetne javítani:

/.\{80\}/!b
s/^\(.\{1,79\}\) /\1\n /
s/^\(.\{1,78\}\)\n /\1 \n/
/\n/!s/ /\n /
P
D

Szóval, hogyan lehetne a fentieket optimalizálni, vagy esetleg van-e valami más konzoli rtf2txt megoldás, ami gyors, és a magyar ékezetes karaktereket is helyesen kezeli?

bash - ssh - parancsfuttatas valtozobol

Sziasztok!

Az alabbit szeretnem megvalositani (bash):
Van egy valtozo ($PAR), ami tartalmaz egy egyszeru parancsot, mondjuk: ls /home/

Ezt szeretnem lefuttatni egy tavoli gepen ssh- n keresztuk.

Ezzel probalkoztam: ssh -P PORT user@host \'$PAR\'
, de nem igazan akar mukodni. Ha a vegere '$PAR'- t irok, akkor meg nem bontja ki a valtozot. Eloszor azt hittem, hogy az IFS- t szurtam el valahol, mert allandoan azt dobta vissza, hogy
bash: line 1: ls /home: No such file or directory.

Remelem tud valaki erre megoldast. Koszi a valaszokat.

fajlnev feldolgozas bash szkripttel

Sziasztok,

Nem vagyok egy bash szaki es az a harci problemam tamadt, hogy mindenfele keszekusza fajlneveket kellene letisztitanom amelyek neha teljes eleresi utvonalat, pontot, szokozt, ekezeteket tartalmaznak, majd a vegerol lecsipni a kiterjesztest, hogy csak tisztan a fajlnev maradjon. Teljesen mindegy lenne, hogy a fajlnev mit tartalmaz, csak ne legyenek benne oda nem illo karakterek. C-ben ossze tudnam utni a dolgot, de egy meglevo bash script elejehez lenne hozzacsapva es ha van kifejezetten erre valo kesz megoldas a bash-ben akkor az lenne a nyero. :-)

Tehat, letezik-e valamifele kesz megoldas ahol bemenetken bedobom az utvonalat+fajlnevet es azt a darabjat dobja vissza amelyik eppen szukseges? :-)

Koszi elore is. :-)

python can't encode caracter

Sziasztok!
python Tkinter párost használva adatbázisba mentem az adatokat, de amikor az Entry mező tartalmát megpróbálom kiolvasni, és szerepel benne (áéóöőúüű) akkor ezt mondja:
if str(nev.get())=="":
UnicodeEncodeError: 'ascii' codec can't encode caracter u'\xe1' in position 2:ordinal not in range(128)
pedig a kód elejére betettem ezt:
# -*- coding: iso-8859-1 -*-

Legyen kedves valaki segíteni, hogy tudnám ezt a gondot orvosolni.
köszönöm!

python pocketpc billentyűzet hogyan?

Sziasztok!
A következő kérdéssel fordulok hozzáto, remélem tudtok nekem segíteni. Python - Tkinter párossal írtam alkalmazást pocket pc-re, de az a gondom, hogy hogy csak akkor van érintőbillentyűzet, ha pl total commanderből indítom el, mert ahoz van, ha pedig csak az én programom fut, nem tudok beírni semmit. Gondolom a Tkinternek nincs is ilyen modulja, csak a win32api-nak, de arról pedig nem találtam semmit sem a neten. Valaki mondja meg plííz, hogy hol találok leírást a python win32apiról, vagy, hogy kell azt a billentyűzetet elővarázsolni.
Köszönöm.

Automatikus ftp upload-hogyan

Sziasztok!

Bash-ben jártas ügyes ember segítségére van szükségem. Valószínű, hogy neki sec-pec alatt menni fog a megoldás, de én nem értek annyira hozzá, s lassan 4 órája próbálkozom.
A helyzetem a következő: van egy szerver (legyen neve: server1), amire van felh.jogom, 5 MB tárterülettel. Rendkívül gyors internettel rendelkezik. Van egy tárhelyem (legyen neve: server2), amin viszont nagy a tárkapacitásom. Itthonról pedig el szeretném rendezni a napi dolgaimat.
Server1-re fel tudok lépni ssh-val, ott már megírtam egy scriptet a wget-tel, hogy letöltse nekem az aktuális napi friss vírusdefiníciót a "www.vírusírtóhonlapja.com" oldalról. Mivel ott mindig az aznapi érhető el, s a nevében benn van a dátum, kis google-zással, s manolással rájöttem, hogyan írhatom ki a dátumot "20060820" formájúvá, s hogyan tehetem be ezt változóként.

(ez egy picit örömujjongás, s most szét is kürtölöm, alig 2 hónapja foglalkozom komolyabban a linux-szal)
Ezt a letöltött vírusdef-t akarom feltenni a server2-re, (ami sajnos winserver, így ssh-zni nem lehet), hogy barátaim is hozzáférjenek minden nap. Mivel server1-en természetesen nem tudok telepíteni, így a ncftp(?) sem jöhet szóba, meg semmi más külső dolog.

Scp-vel is eljutottam oda, hogy erről a server1 gépről irányítva gép3-ról gép4-re tudtam másolni, de ha jól tudom, az scp ssh alapon kommunikál, és persze mindkét gépre feltettem egy ssh démont.
Egy script kellene nekem, ami az előre beírt felh.név/jelszó és elérési út alapján felnyomná a szerverre a v.definíciót.
Természetesen kérdezhetitek, hogy akkor miért nem csatlakozom én fel, s töltöm le, majd a másikra fel!? Mert ha modemes eléésem van, akkor inkább ezzel szenvedek meg, majd 2 perc alatt meglenne az egész. Google-on amúgy sem találtam erre ilyen mezei megoldást.

(kezdem érteni lassan a script-írás tudományát, de még távol állok tőle)
Hálás köszönetem annak, aki segít!