Szkriptek: Python, Perl, Bash, ...

bash segitseg [Megoldva]

Sziasztok,

Sajnos bash szkript irasban nulla vagyok ezert a segitsegetekre lenne szuksegem. Adott egy szoveg fajl amiben a kovetkezo tipusu stringek (fajlnevek) talahatok egyeb szoveg mellett:

xxxxxx.iam
yyyyyy.ipt

a sorok valahogy igy neznek ki:
\konyvtar1\konyvtar2\konyvtar3\xxxxxx.iam

es egy konyvtar amiben hasonlo nevu pdf allomanyok vannak.

Kellene egy szkript ami vegigfut a szovegfajlon es megnezi, hogy talalhato-e hasonlo fajlnevu pdf allomany az adott konyvtarban.
Ha kap hasonlo nevu pdf fajlt akkor ezt a fajlt a szkript masolja at egy adott konyvtarba indexelve, vagyis az elso pdf amit kap legyen 0001.pdf, a masodik 0002.pdf stb.

Mi az ertelme az egesznek? Az, hogy a szovegfajl egy Autodesk Inventor BOM (bill of materials), a pdf fajlok meg a rajzok. A BOM sorrendben van, de a pdf rajzok nincsenek. Ha atmasolom a pdf fajlokat 0001, 0002 stb nevre akkor ezek is sorban lesznek es egy batch print segitsegevel egyszerre ki tudom oket nyomtatni.

Koszi,

perl és a magyar nyelv ékezeti

sziasztok!

van valami megoldás, hogy win környezetben, ahol a konzol kódlapja 852-es és magyarul ír az ember, ott a perl tudjon ékezese kimenet/bemenetet kezelni? olvasom a hup-on és más helyen erről a témáról kezdett beszélgetéseket, de mintha mindenhol csak félmegoldások lennének (amiket eddig találtam!). az ékezetlen szöveg nem megfelelő megoldás, ha userrel akarok kommunikálni, tehát kell idővel jól működő megoldás. sőt, az OS is kommunikál vissza és ott is fel kell dolgozni valahogy az ékezetes értékeket.

ki miféle megoldással oldja meg ezt a problémát?

perl /regex/ feldolgozás

sziasztok!

van egy scriptem, ami paramétereket dolgoz fel és ennek van egy "nem várt" eredménye. a feldolgozás case szerkezeten keresztül megy. egyes esetekben két vagy-gyal kapcsolt eseményt vizsgálok és itt van egy hibám. azt akarom figyelni, hogy a paraméter "-d=" vagy "/d=" taggal kezdődik-e, vagy nem. ezt úgy csináltam, hogy

switch ($param) {
case /^[\-\/]d\=/i {parancs;}
}

ez elvben azt vizsgálná, hogy a paraméter "-d="-gel kezdődik-e, vagy hogy "/d="-gel. van négy ilyen kapcsolóm, ahol a "d" betű van lecserélve más-más betűre természetesen. ha nem vizsgálom azt, hogy ott-e az egyenlőség jel is, akkor működik (csak épp nem azt kapom, amit akarok...), ha 3 case-ben ott az egyenlőség jel, akkor még jó. ha viszont berakom a 4.-be is az egyenlőséget (először csak simán = volt ott, aztán gondoltam az a probléma, hogy az is valami regex, amit \= írással ki tudok kerülni), akkor viszont a program futása megakad "kilóméterekre onnan", syntaxis hibával (nyilván valamiképp felborítja a "páros jeleket".

a leginkább "vicces", hogy mivel ez egy subrutinban van feldolgozva, ezért szépen fogtam és, a javítás idejére, átmásoltam egy másik, üres scriptbe és ott próbáltam volna ki. ott viszont _hiba nélkül futott_. minden "páros jelet" átnéztem a kódban, nincs "páratlanul egyik se" (időzőjelek, kapcsols zárójelek, stb). bár már az is fura, hogy a sub áttéve egy "üres kódba" jól megy, az eredeti helyén meg nem. mintha "addigra elvesztené a fonalat a perl", vagy tudja fene...

találkozott már valaki ilyennel? ki lehet ezt valahogy javítani, vagy kerülni? amint lehagyom az = ellenőrzést is belőle, azonnal jó a "match", viszont nekem az is kell. mi a megoldás ilyenre?

wget (progress) letöltés százalék elkapása

A wget progress bar elég "látványos", de speciális esetekben nem használható. pl. speciális kijelző esetén, ahol jó ha képernyőtörlés lehetséges de a pozicionálgatás eléggé macera és a felbontása se a normál, tehát törhetnek a sorok meg ilyesmi. A kérdés az lenne, foglalkozott-e valaki olyan esettel ahol a wget-et használta letöltésre és a wget kimenetéből csak a százalékos értéket tudta a képernyőn megjeleniteni anélkül hogy a wget forráskódját átirta. Illetve hogy lehet esetleg strace vagy egyéb progi segitségével úgy meghívni a wget-et hogy csak ez az adat jelenjen meg?

köszi

\\server\dir string darabolás perlben

sziasztok!

van valami egyszerű mód arra, hogyha egy változóban levő (pl. $uncpath="\\server\source\dir\file") útvonalat akarom kettévágni úgy, hogy kb ez legyen a végeredmény:

$p1="\\server\"
$p2="\source\dir\file"

korábban olvastam valami olyan split szerű eszközről, ami úgy vág, hogy n darab előfordulás után a "maradék" az utsó darabban van akkor is, ha lenne még benne szerparáló tag. hm... lehet nehéz így érteni, de kb olyanra gondolok, hogy kiindulva:

$uncpath="\\server\dir\to\file";
($p1,p2)=darabolgató(/\/);

magyarul az első \ után már nem nézi mi van tovább, rakja szépen be a p2-be. rosszul emlékszem, hogy volt valami ilyen util? jó lenne, ha nem kéne erre (nem mintha nagy kaland lenne) csinálni sub-ot. persze, ha nem megy másképp, akkor megcsinálom, de nem találom azt, amivel eleve meg lehet csinálni ezt...

[Megoldva] Sok fájl konvertálása mencoderrel

Sziasztok!

A problémám az, hogy van 150 real media fájlom, amiből én avikat szeretnék csinálni.
Félig-meddig sikerült, a kód így néz ki:

#!/bin/bash
i=1
for i in `seq 1 153`;
do mencoder ~/film/* -o $i.avi -ovc xvid -xvidencopts fixed_quant=5 -oac mp3lame -ofps 20 -lameopts abr:br=64
done

A probléma az, hogy amint befejezte az 1. konvertálását, nem csinálja meg a 2.avit, hanem konvertálja tovább az 1.aviba.
Tudnátok segíteni?

tömeges átnevezés, ékezet eltávolítása

Sziasztok!

Ki tudnátok segíteni egy olyan szkripttel (bash v python), ami rekurzívan az összes alkönyvtárban található fájlok/könyvtárak nevében kicseréli az ékezetes betűket nem ékezetesekre?

pl Árvíztűrő_tükörfúrógép.mp3 --> Arvizturo_tukorfurogep.mp3 lesz

(Előre is) kösz!