Szkriptek: Python, Perl, Bash, ...

Számok cseréje szövegre

Sziasztok!

Nem tudnátok véletlenül adni valami elemi bash, perl, vagy awk szkriptet, ami magyar nyelvű szövegben a számokat szövegre cseréli?

Dsl linuxra kellene, ahol a szam.awk (http://tkltrans.sourceforge.net/magyar/leiras.htm) újabban "segmentation error"-al elszáll. (Pedig rendszer frissités nem volt mostanában, a 48M ram 3/4-e pedig általában szabad)

Csak szkript lenne jó, mert c/c++ fordító nincs, és hely sincs nagyon neki.

Tablazatba rendezni adatokat

Asszem, kellene egy kulon topicot inditanom, mert ha megg akarok oldani valamit scriptben, mindig beleutkozom a korlataimba...es ez egyre gyakoribb.

Jelen pillanatban az alabbi problemam van, ha valakinek van otlete, kerem, segitsen:

Adott egy bazi nagy text file, ami igy nez ki:
x11
x12
x13
x14
x15
y11
y12
y13
y14
y15
x21
x22
x23
x24
x25
y21
y22
y23
y24
y25
stb
Szoval van ot sor ilyen, alatta ot sor olyan.
Ugy szeretnem vmivel szetszedni, hogy igy nezzen ki:
x11 y11
x12 y12
x13 y13
x14 y14
x15 y15
x21 y21
x22 y22
x23 y23
x24 y24
sit.

Tudna nekem erre valaki egy sciptet mondani?
Meg annyit, hogy mar ez is valogatas eredmenye, ar eredetiben
sok *.php file van a konyvtarban es abbol szedtem ki egy file-ba ezeket igy:

for i in *
do
grep "void(szavaz" $i | cut -b 16-100 >> Gyujtes
grep "./kep" $i | cut -b 60-100 >> Gyujtes
done
uniq Gyujtes > Gyujtes2

Ez meg csak a problema egyike fele, mert ezek a kepek csak indexkepek zip file-okhoz, szoval majd valahogy ugy akarom kibontani, hogy az "x11" nevu filet az "y11" directoryba bontsa ki. De azt talan megoldom, most ezt lenne jo tudni, hogyan tudom tablazatos formaba rendezni az ilyen szoveget.

PyQT4 Progressbar

Sziasztok!

Pár napja kezdtem el tanulni aPyQT4-et, tehát lehet, hogy hülyeséget kérdezek :)

Olyan programot szeretnék írni gyakorlásképpen, ami letölt nekem a netről egy bizonyos helyről egy bizonyos mennyiségű fájlt. Maga a letöltés működik. Viszont szeretném egy progressbar-on látni, hogy hogy áll a letöltésem. Ezt úgy szeretném megoldani, hogy kiszámolom, hogy mennyi százalékot adjon hozzá minden letöltött fájl után a progressbar értékéhez a program:

hozzaadni = 100.000/osszesletoltendofajl

Utána pedig:

most = self.folyamat.value()
hozzaad = most+hozzaadni
self.folyamat.setValue(hozzaad)

De ez azért nem működik, mert a most az int lesz. És mivel 0-nál kisebb a hozzaadni értéke, azt kerekíti 0-ra. És akkor a következő fájl után a nullához adja hozzá a hozzaadni -t. És így természetesen a progresbar értéke mindig 0 marad.

Az lenne a kérdésem, hogy hogy tudnám megoldani, hogy ne csak int-et tudjak hozzáadni a progressbar értékéhez?

Köszönöm: Zsolt

Bash függvény értékvisszaadás hibás MEGOLDVA

Csoporttagokat akarok tömbbe tölteni LDAP-ból, és a függvény, ami ezt elvégzi, mellékesen visszaadja a csoportagok számát. A függvény paramétere a csoportazonosító.
A függvényen belül kíratva a visszadásra váró értéket (echo "Ennyi: $x") még helyes, a fóüggvényen kívül (echo "Ennyi tag van: " $tagok_szama) már nem mindig.
jól megy pl az 10017-es csoportra (4 tag), a 10001-re (46 tag), de a 342 tagú 10000-es csoportra a függyvényen kívül már csak 86-ot ír.

HELP!


#!/bin/bash
function csoptagok_tombbe () {
let x=0
for i in `ldapsearch -LLL -x "(gidNumber=$1)" uid -H ldap://127.0.0.1 -P 3|grep uid: |awk {'print $2'}|sort`
do
let x=$x+1
#echo $x - $i
csoptagok[$x]=$i
done
echo "Ennyi: $x"
return $x
}

csoptagok_tombbe 10000
tagok_szama=$?
echo "Ennyi tag van: " $tagok_szama

bash és bc (?) [megoldva]

sziasztok.
abszolut nem tanulok és nem is tanultam sosem programozást, illetve semmi ehhez hasonlót.
saját magam sórakoztatom néha ezzel.
most egy olyan próblémába ütköztem, ami elég triviális, de mégsem tudom megoldani.
a lényeg az, hogy logokat különböző fájlokra bontok le, kulcsszó alapján. ezzel nincs is semmi probléma.
viszont szeretném, ha x idő múltán a régebbi fájlok törlődnének. ezt nem tudom megoldani.
többféleképpen próbálkoztam, de nem jártam eredménnyel.
az alaphelyzet:


#!/bin/bash

set -e

DATE_LOG=`date +%Y%m%d`

# sshd log
cat /var/log/auth.log | grep sshd 2>&1 > /home/sumo/sec/log/sshd_auth_${DATE_LOG}.log

a legutolsó próbálkozásom ez volt:

DATE_RM=`expr ${DATE_LOG} - 7`

így megkapom ugyan eredménynek $DATE_LOG - 7 -et helyesen (legalábbis az echo $DATE_RM kiírja az értéket), de a $DATE_RM változót mégsem tudom használni. egyszerűen létre szerettem volna hozni próbaképp egy fájlt így:

touch /home/sumo/sec/log/teszt_${DATE_RM}.txt

de nem ment.
legyetek szívesek elindítani a helyes irányba:)
előre is köszi: sumo

SCons, specialis feladatra[megoldva]

A kovetkezo a problemam:
Tobb kulonallo xls-bol egy, amolyan compiler programmal letre kell egy-egy egyedi formatumu filet. Ezek .slc kiterjesztest kapnak. Az .slc fileokat egy masik program dolgozza fel, ugyanugy mint egy linker. A linker egyetlen filet ad ki magabol. Ahogyan ez C/C++ eseten megszokott. Ezeknek a lepeseknek az automatizalasara szeretnek irni egy SConstruct filet. Magamtol ennyire jutottam:


env = Environment()

cmplr = Builder(action = 'cat < $SOURCE > $TARGET',
                suffix = '.slc',
                src_suffix = '.xls')

lnkr = Builder(action = 'cat $SOURCES >> $TARGET',
                suffix = '.kdb',
                src_suffix = '.slc')

env['BUILDERS']['MyCompiler'] = cmplr
env['BUILDERS']['MyLinker'] = lnkr

srcs = [File('file1.xls'), File('file2.xls')]
slces = env.MyCompiler(source = srcs)
print slces

env.MyLinker(target = 'final.kdb', source = slces)

A compilert is, es a linkert is a cat helyettesiti az egyszeruseg kedveert. A problemam az, hogy csak a file1.xls-re fut le compile resz. Hogyan lehetne ezt orvosolni?

Python binaris

Hali!

Irtam pythonben egy nagyobbacska programot. A dolog sajnos tartalmaz olyan dolgokat, melyet nem szeretnek egy mezei user szaramara egybol olvashatova tenni. A kerdesem az volna, hogy ha a .pyc filet adom csak kozre, azt mekkora erofeszites visszafejteni? Esetleg van e valami modja a py/pyc kodolasanak, hogy csak macerasan lehessen visszafejteni?

Elore is koszi a segitseget.

[Megoldva] Perl - string összehasonlítás nem megy

Hello!

Adott az alábbi Perl kód:

#!/usr/bin/perl

$yearmonth=`date +%Y%m`;

$num='200712';

print $num.' = '.$yearmonth;

if ( $num eq $yearmonth ) {
    print ' igen!';
}
else {
    print ' nem!';
}

print "\n";

$num='111';

print $num.' = '.$yearmonth;

if ( $num eq $yearmonth ) {
    print ' igen!';
}
else {
    print ' nem!';
}

print "\n";

Ez egy nagyobb scriptből van kiszedve, de a problémát ez is produkálja. Nevezetesen azt, hogy a két string ha egyenlő, ha nem, mindig false-ra értékelődik ki az if feltétele. Miért van ez így? Mit szúrok el?

A fenti script kimenete:

200712 = 200712
 nem!
111 = 200712
 nem!

Az eredeti scriptben egyébként a $num változót MySQL adatbázisból olvasom ki.

Van ötletetek, mi okozza ezt?

Petya