Szkriptek: Python, Perl, Bash, ...

find -exec

Van valakinek ötlete, hogy a find -exec kapcsolója után hogyan tudok a megtalált file könyvtárára hivatkozni?

Vmi ilyesmire gondolok:


find -type f -iname "*.txt" -exec echo `dirname \{\}` -> `basename \{\}` \;

Csak persze a backtick már jóelőre végrehajtódik...

Megadott konyvtarban fajlnevek kisbetusre konvertalasa

Tudna valaki segiteni nekem? Egy bash-sciptrol lenne szo.

A problemam az, hogy egy ma$ik szamitogeprol kaptam kepfajlokat, es szeretnem egy galeriaban hasznositani, am ehhez kis betusre kellene alakitani a fajlok nevet! Ugyebar egyes rendszerek hiaba nem nezik a kis/nagy betu kulonbseget, azert a kiterjeszteseket csak nagybetuskent taroljak. :grr:

Tudnatok nekem segiteni? Nagyon orulnek neki, mert a bash-hez elegge hulye vagyok.

Feledékeny bash?

Van egy szkriptem, ami hol az elvárt módon működik, hol nem (többnyire nem).
Nagyjából így néz ki:

mkdir=/bin/mkdir
tempsubmappa=`$mktemp -d`
probix=1
while [[ $probix -le 4 ]]; do
  echo "$$: parancs: $mkdir $tempsubmappa/$probix" >> $dojoblog
  $mkdir "$tempsubmappa/$probix"
# Itt pár perces kódolási munka van, közben a cron a szkript
# egy másik példányát is elindítja, de az észreveszi
# hogy nincs egyedül, és kilép (csak az első példány
# fut tovább)
let "probix = $probix + 1"
done
echo "$$: Parancs: $mkdir $tempsubmappa/sub" >> $$dojoblog
$mkdir "$tempsubmappa/sub"

Most bekukkantottam a $dojoblog logfájlba, és érdekes dolgot találtam, ez van benne:
8873: parancs: /bin/mkdir /tmp/tmp.PLePKZ8907/1
8873: parancs: /bin/mkdir /tmp/tmp.PLePKZ8907/2
8873: parancs: /bin/mkdir /tmp/tmp.PLePKZ8907/3
8873: parancs: /bin/mkdir /tmp/tmp.PLePKZ8907/4
8873: parancs: /tmp/tmp.PLePKZ8907/sub

Azaz, úgy tűnik, hogy a ciklus belsejében még benne volt a $mkdir változóban a "/bin/mkdir" érték, a ciklus után meg a változó üres volt, ezért a /tmp/tmp.PLePKZ8907/sub mappa nem lett létrehozva, és a szkript "dugába dőlt".

Hogy lehet az, hogy a $mkdir változó, ami a szkript elején értéket kapott, egyszer csak kiürült?

Lehet ez összefüggésben azzal, hogy a szkript futása közben a cron a szkript egy másik példányát is indította (de az magától kilépett, mert egyszerre csak egy példányban futhat)?
Mintha azt venném észre, hogy akkor nincs gond, ha a szkript elég gyorsan lefut ahhoz, hogy időközben nem indul második példánya (azaz a kódolási munka elég hamar lefut).
De miért csak a $mkdir változót érinti ez a probléma? A szkript más változói látszólag "sose ürülnek ki"!

Tudtok valami magyarázatot erre?

Python + pxPython + CORBA linuxon

Hello mindenki!

Egy érdekes problémám van, de nem jövök rá a megoldásta, hátha valaki tud segíteni.

Pythonban írok egy egyszerű corba-s grafikus felületű progit.
A grafikus felülethez wxPython-t, a corba-hoz pyORB-ot használok.

A probléma az, hogy az orb nem megy együtt a wx-el.

Ha elindul a felület és utána az orb, akkor a felület az első esemény után teljesen meghal, ki kell lőni a progit.

Ha előbb az orb-ot indítom a felület már be sem jön.

Az orb objektum természetesen külön szálban fut.

Próbáltam suse10-en és Fedora Core 5-ön de ugyan az a hiba.

Tud valaki segíteni? Csinált már valaki ilyet?

Szöveg törlése. Sed, awk, bash?

Pár (tíz)ezer html fájlt meg kellene dolgoznom úgy, hogy töröljek belőlük egy szövegblokkot.

A törlendő szövegblokk
- többsoros,
- ugyanazzal a kezdő mintázattal indul, de nem szükségszerűen sor elején
- ugyanazzal a záró mintázattal végződik, szintén nem feltétlenül sor végén

Van erre valami egyszerű és frappáns sed/awk parancs, vagy egy bash szkriptet kellene összekalapálnom rá?

bash ls tetszoleges konyvtarlista minden elemere

Azzal gorcsolok, hogy van egy DVD-nyi MP3, konyvtarakba rendezve. Minthogy kulonbozo helyekrol szarmaznak, egy resze ekezetes filenevet tartalmaz, sok helyen van szokoz a file neveben. Szeretnem egysegesiteni, ekezetes karakterek ekezetnelkulire, szokozok alahuzasjelre.
Az alabbi modokon probalkoztam:
#/bin/sh
for i in "`ls -1 -A`"
do
j=`echo $i | tr [áéíűő\ ] [őaei\_]`
mv $i $j
done

Aztan elmaradt a for, lett helyette "find *" majd "echo *" , de tokmindegy micsinaltam, akar "for" volt "ls"-sel, akar "find" vayg "echo", ha nem volt benne rekurzio, ha volt benne, az _egesz_ kimenetet belerakta a valtozoba.
Tudna nekem valaki segiteni? Egy tetszoleges konyvtarlista _minden_ elemere (egyenkent) vegrehajtani ugyanazt a parancsot?
Regebben mar megcsinaltam, mikor nagybetus file-ok voltak es azokat alakitottam kisbetusse, de mar nem emlekszem, hogyan :(

python script cron-al indítva

Sziasztok !

Van egy bash szkriptem, ami email-eket kér le és tesz be egy adatbázisba, a levél lekéréséhez a "getmail" programocska getmail_fetch python script-et használom.
Ha képernyőn bepötyögöm, akkor lefut jól, email bekerül az adatbázisba. Ha azonban cron-ból fut le, akkor minden végrehajtódik, csak a python script nem. Valaki találkozott már hasonló problémával/megoldással ?

Z.