Udvozletem,
van par szaz kep, amire egy reteget kellene ratenni azonos meretben es azonos helyen. Az imagemagick composite-ja tokeletes lenne, csak a ciklussal benazok es szeretnek segitseget kerni. Amire a reteget ra kellene tenni, igy nez ki formailag:
kep_001.png, itt egy bizonyos sorozatu (pl. 22-108) kepeket kellene egy masikkal osszeolvasztani. Ez mukodik egyesevel:
composite valami.png kep_001.png kimenet_001.png
Ezzel a tok egyszeru ciklussal tokolok, mindig kozbejon valami.
p.s. nem programozassal keresem a kenyerem :)
- 7238 megtekintés
Hozzászólások
Mivel a ciklus egy elég konkrét valami (itt: vagy konkrét értéktől konkrét lépésközzel konkrét értékig tart, konkrét formátummal, vagy konkrét fájlok valahogyan képzett listájából áll), jó lenne ezeket a konkrétumokat tudni, hogy ne a man vonatkozó részeinek másolataival kelljen válaszolni.
- A hozzászóláshoz be kell jelentkezni
És az OS se mindegy, mert win alatt picit másképp kell ciklust kalapálni :D
- A hozzászóláshoz be kell jelentkezni
Az azért default nem képzelem, hogy valaki win alatt szerkeszt képet parancssorból - de persze igazad van, és érhet meglepetés.
- A hozzászóláshoz be kell jelentkezni
Az erős hogy én szoktam, de nem példa nélküli :D
- A hozzászóláshoz be kell jelentkezni
#!/bin/bash
START_NUM=1
STOP_NUM=4
NAME_BASE="kep_"
NAME_OUT_BASE="kimenet_"
NAME_LOGO="valami.jpg"
for i in `seq $START_NUM $STOP_NUM`
do
n=$i
if [ $i -lt 100 ]
then
n="0"$i
fi
if [ $i -lt 10 ]
then
n="00"$i
fi
composite -dissolve 30 $NAME_LOGO $NAME_BASE$n".jpg" $NAME_OUT_BASE$n".jpg"
done
- A hozzászóláshoz be kell jelentkezni
Ok... de én még mindig várnám a specifikációt, mielőtt lekódolom a nemtommit.
- A hozzászóláshoz be kell jelentkezni
Én meg csak így vakon és süketen... :-)
- A hozzászóláshoz be kell jelentkezni
Na jó, akkor csatlakozom a vak zenészek karához.
n=`printf "%03d" $i`
Ezért pedig pedig tessék frissen morzsolt kukoricán végigtérdelni, amíg lefut egy végtelen ciklus:
$NAME_BASE$n".jpg" $NAME_OUT_BASE$n".jpg"
Semmi ok a változófeloldásokat kihagyni az idézőjelek közül - sőt, a belevételük kvázi-kötelező, ajándékba adott kódban pedig a jó példa érdekében de facto kötelező.
- A hozzászóláshoz be kell jelentkezni
Egyrészt csak konzervkukorica van itthon, másrészt meg ha jelen formájában működik a kód (márpedig működik), akkor tulajdonképpen miért is vagyok én most lefenyítve? Szerény meglátásom szerint az egyetlen olyan helyzet, amikor behalna a fenti megoldás az lenne, ha a fájlnevek szóközt tartalmaznának, de ennyi szépérzéke meg már csak van a kérdezőnek.
Ami meg a jó példát illeti:
"Kevés olyan bosszantó és elviselhetetlen dolog van a világon, mint valaki másnak a jó példája." (Mark Twain)
- A hozzászóláshoz be kell jelentkezni
Tkp. igazad van.
De még sincs.
Máshogy közelítem meg.
Miért tetted a ".jpg" névrészeket idézőjelbe? Semmi okod rá, csak kuszálja a kódot, ha egyébként szeretsz spórolni az idézőjelekkel. Viszont ha ott vannak, akkor akár lehetnének úgy, ahogy világosabbá teszik... igen... példamutatóan.
A "most működik, tehát így jó"-jellegű érvelést sztem hagyjuk meg a parancssor.info nemlétező kommentjeire adott nemlétező válaszok gerincének.
- A hozzászóláshoz be kell jelentkezni
Akkor most először is el kellene döntened, hogy túl sok a kódomban az idézőjel, vagy túl kevés, mert ez nekem a fenti érvelésedből valahogy nem világos.
Ami meg az olvashatóságot illeti, én tényleg rendszeresen ebben a stílusban idézőjelezek, számomra ugyanis ez tűnik olvashatónak: a változóra történő hivatkozás kívül, a pluszban hozzáillesztett karakterlánc belül. Ezen csak akkor szoktam változtatni, ha működési gondot okoz (például szóköz a névben, mint írtam). Mármost lehet, hogy egyszer miattam fog megsemmisülni az univerzum, de hát semmi se tart örökké, miért pont az univerzum lenne kivétel.
- A hozzászóláshoz be kell jelentkezni
Pont elég... csak rossz helyeken nyílnak.
- A hozzászóláshoz be kell jelentkezni
Nos, Tanult Kollégám, akkor én most az eset kapcsán kifejtenék Önnek valamit.
Az Ön idézőjelezési képességei minden kétséget kizáróan emberfelettiek és a programozással kapcsolatos tudása is kozmikus dimenziókban szárnyal. Mindazonáltal Ön 17 óra 45 perc és hajnali 1 óra 52 perc között azzal volt elfoglalva, hogy előbb a "specifikáció" nevű bűvszót emlegette, aztán meg az én kódomat látva mindenféle gabonaszemeket próbált a testnyílásaimba erőltetni.
Mármost elismerem, hogy ezzel a programozási stílusommal, amivel úgy 20-25 éve írom a működő kódokat, soha nem fogok Önnél, a szakma Rectus Magnificusánál egy közepes osztályzatot elérni, de szabadjon már megjegyeznem, hogy ha akad ebben a több órás szófosásban olyan hozzászólás, amivel a kérdező ment is valamire, hát akkor az az enyém.
Avagy költői kérdés formájában megfogalmazva a problémát: ugyan miként fog a világ elébbhaladni az Ön kozmikus tudása által vala, ha Ön egy ilyen légyfasznyi probléma megoldásának se hajlandó nekiállni 26 oldalas UML specifikáció nélkül?
- A hozzászóláshoz be kell jelentkezni
Miért csinálsz ebből érzelmi kérdést? Abban igaza van, hogy lehet szóköz a filenévben, és ha nem teszed a változódat idézőjelbe, a szóközök mentén több paraméterre hullik a helyettesítésed. Én minden ilyen kifejezést idézőjelezek. Úgy is mondhatnánk, hogy hibás volt, amit írtál, csak bizonyos speciális esetekben éppen működik. Ezen megsértődni...
Mondok valamit. Az aláírásomban lévő kifejezésekben eredetileg nem tettem aposztrofok közé a karakterosztályokat. Szóltak, hogy ez így nem korrekt. Valóban, hiszen a szögletes zárójel a shellnek speciális karakter. Kínosnak éreztem, mert egyébként tudtam, csak nem figyeltem oda. Aztán kijavítottam. :)
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
Először is nem igazán sértődtem meg (erről már régen leszoktam itt a HUP-on), bár azt meg kell jegyezzem, hogy ha az ember tiszteletben kívánja tartani a másik vélhető szakmai erényeit, akkor nem térdepelteti kukoricára.
Amit leírtam, azzal valami generális elégedetlenségemnek kívántam hangot adni, amúgy valószínűleg teljesen fölöslegesen. Általános ugyanis a HUP-on az a hozzáállás, hogy érdemben segíteni nem hajlandó senki, okoskodni annál inkább. Egyszer egy ismerősöm feltett egy kérdést Fourier transzformációval végezhető adatsimítással kapcsolatban. Vagy 50 hozzászólásban mindenki összeszenvedte az öreganyja kínját is anélkül, hogy azzal a kérdező bármire ment volna. Én meg leültem, 20 perc alatt megírtam neki FFTW-vel, aztán elküldtem magánlevélben. Volt annyi eszem, hogy nem tettem ki ide, mert ha mégis, akkor úgyis a kapcsos zárójeleim dőlésszögével foglalkozott volna minden okostojás.
"lx" kollégámnak az idézőjelekkel kapcsolatban szigorúan szakmai szempontból természetesen igaza van. Az ilyen programok azonban nem az örökkévalóságnak készülnek, ha megtették, amit meg kell tenniük, mehetnek a kukába. Tökmindegy, hogy valami speciális esetben működnének-e, vagy sem, és ezt nyilván ő is tudja. Viszont ha ő is így állna hozzá, és egyszerűen csak beposztolná ide a kódot egy árva szó nélkül, mint én tettem, azzal nem tudná a köz előtt bemutatni saját felsőbbrendűségét. Kénytelen tehát minden használható dologban találni legalább egy szaros idézőjelet és kifejteni, hogy a szerző hány áramütést/zabszemet/hólyagtükrözést érdemelne érte.
- A hozzászóláshoz be kell jelentkezni
A szóközös fájlnév a Winen felnőtt generáció számára keményen része a fájlnév-világnak, szóval +1 a rendesen kitett idézőjelre!
- A hozzászóláshoz be kell jelentkezni
Az én életemnek meg nem része a Winen felnőtt generáció. Nem tudom, mikor és hogyan alakult így, de ez van.
---
Science for fun...
- A hozzászóláshoz be kell jelentkezni
Szerintem van hiba a kódodban. Mivel a 10 alatti számok egyben 100 alatt vannak, így egy vezető 0-thozzáfűztél már, ezért 10 alatt szintén egy vezető 0-t kell hozzáfűzni a kettő helyett.
Bocs, hülyeséget írtam... Akkor lett volna igaz, ha másodjára $n-re hivatkozol $i helyett. Hamarabb posztoltam, mint gondolkodtam.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
Először én is azt akartam írni, hogy hibás de még időben észrevettem. Ellenben én biztos elifet javasoltam volna :-)
(Sőt még most is javaslok, valamint a feltétel megfordítását is, hátha később valamivel ki akarjuk egészíteni :-) )
- A hozzászóláshoz be kell jelentkezni
Sőt, akkor már lehet akár case is. De valóban a printf vagy a seq-ban megadott formátum a legszebb.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
-
- A hozzászóláshoz be kell jelentkezni
Ezt az ifezést ki lehet váltani azzal, hogy printf -v n "%03d" $i .
- A hozzászóláshoz be kell jelentkezni
Tök jó. Ezt nem ismertem.
- A hozzászóláshoz be kell jelentkezni
-v, tényleg, kifejezetten elegáns, még ha bashonly is
- A hozzászóláshoz be kell jelentkezni
Ahogy elnézem a GNU Core Utils csomagban is van egy printf megvalósítás, szóval Bash nélkül is megy. (Mondjuk nem -v-vel, de működik.)
---
Science for fun...
- A hozzászóláshoz be kell jelentkezni
Pontosan, alant szerepel backtickekkel a külső binárison alapuló, ez meg a beépítetté - és tényleg elegáns, hogy a -v-vel nem folyat ki a stdoutra, amikor gyakran úgyis a stdin kapná az eredményt.
- A hozzászóláshoz be kell jelentkezni
lefordítanád a gondolatjel utáni részt? Biztos késő van, de nem értem :-(
- A hozzászóláshoz be kell jelentkezni
Arra célzok, hogy egy shell paranccsal közvetlenül értéket adni egy shell változónak (a vonatkozó függvény eredményét átmásolni neki (ha nem tévedek)) valószínűleg olcsóbb, mint a shell parancs kimenetét pipe-ok kezelésre hivatott függvényeken keresztül (írva és visszaolvasva) tenni ugyanoda.
Illetve számszerűszítve a valószínűség már bizonyosság (csak az eltérő strace sorokat megjelenítve):
(-v vel)
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
-nan 0.000000 0 13 brk
-nan 0.000000 0 6 close
-nan 0.000000 0 4 read
-nan 0.000000 0 8 rt_sigaction
-nan 0.000000 0 6 rt_sigprocmask
------ ----------- ----------- --------- --------- ----------------
100.00 0.000000 122 12 total
(backtickekkel)
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
-nan 0.000000 0 11 brk
-nan 0.000000 0 1 clone
-nan 0.000000 0 8 close
-nan 0.000000 0 1 pipe
-nan 0.000000 0 6 read
-nan 0.000000 0 11 rt_sigaction
-nan 0.000000 0 12 rt_sigprocmask
-nan 0.000000 0 1 sigreturn
-nan 0.000000 0 2 1 waitpid
------ ----------- ----------- --------- --------- ----------------
100.00 0.000000 138 13 total
- A hozzászóláshoz be kell jelentkezni
Kicsit offtopic, de nem bírom szó nélkül hagyni. Nem tudom, tőled láttam-e ilyet korábban is vagy másoknak is "mániája" a shell scriptek ilyen szintű optimalizálása, de engem kezd zavarni: ha valahol ekkora jelentősége van a performanciának, hogy meg kell nézni, melyik mód okoz több rendszerhívást, 1%-kal több I/O-t, CPU használatot, akkor biztos, hogy azt shell scriptként kell megvalósítani? :)
Aki tudja, csinálja, aki nem tudja, tanítja... Hm... igazgatónak talán még jó lennék. :)
- A hozzászóláshoz be kell jelentkezni
AZT nem tőlem láttad, de annak szálnak oka is volt.
De tőlem is láthatod, mert sokat lehet ilyenből is tanulni.
Itt egyszerűen szépnek látom az egyébként triviális alapokon nyugvó triviális fícsört.
- A hozzászóláshoz be kell jelentkezni
Ha van időm én is szívesen szöszölök triviálisnak látszó feladatok kifinomultabb megoldásával, mert egyszer még jól jöhet.
Ha nincs idő, akkor marad a for i in *txt ; do blabla $i; done - amit így sose írnék le shell scriptben, de ha az adott esetben láthatóan oké lesz, akkor nem fogok sokat variálni rajta.
- A hozzászóláshoz be kell jelentkezni
Ha már úgyis offolunk, megfejtem én neked ezt a dolgot. :-)
Az informatikus végzettségű emberek legnagyobb tragédiája az a kimondatlan tény, hogy az informatika afféle kiszolgáló tudomány. Érthet valaki rettenetesen a számítástechnikához, ezzel önmagában valójában semmit nem tud kezdeni. Vagy kell hozzá egy másik területtel kapcsolatos ismeretanyag, vagy egy másik ember, akinek jó valamire az, amit az informatika nyújtani tud.
Namost ez így marhára ciki, mert az informatikus úgy gondolja magáról, hogy az ő diplomája ugyanúgy diploma, mint bárki másé, és ha annak a bárki másnak nem kell senkit szolgálni, hanem büszkén tekinthet a felkelő nap fényébe, akkor neki miért kéne.
Ennek az alapvető ellentmondásnak aztán mindenféle pszichológiai következményei vannak. Az egyik lehetőség a szakmai gőg, aminek jó esetben van szakmai alapja is, rossz esetben meg csak simán röhejes.
A másik, sokkal kifinomultabb tünet a triviális problémák általad is érzékelt aprólékos megközelítése. Ez látható ebben a topicban is.
Feladat: húsz darab képet kell rárakni húsz darab másikra.
Józan megoldás: megír, lefuttat, hazamegy.
Informatikus megoldás: specifikál, operációs rendszert egyeztet, hordozhatóságot vizsgál, nem ír meg, nem futtat le, nem megy haza, hajnali kettőkor idézőjelet kerget, ciklusváltozó generálására 4 különféle módszert kidolgoz, módszereket strace-szel hatékonyság szempontjából összevet.
És mivel ez nála egy pszichológiai kényszer, mindeközben nem érzékeli, hogy az egész olyan, mintha egy szakács főzés helyett egyszer csak elkezdene a répaszeletelés kvantumfizikájával foglalkozni. A kvantummechanika természetesen szép dolog, de ha ebédre leves helyett szépen megoldott Schrödinger-egyenleteket tálalsz fel, a főpincér úgy fog valagba rúgni, hogy kiújul a részecske-hullám kettősséged, és egyszerre szállsz ki főbejáraton meg a hátsó kapun.
- A hozzászóláshoz be kell jelentkezni
Azért ez így hülyeség, mert a diploma az diploma (még a bölcsész is), a megszerzéséhez valamit tenni kell, ha az ember nem a kínai piacon veszi. ;)
Op.rendszert egyeztet? Azért nem mindegy, hogy a kérdéses feladványt DOS alatt akarja végrehajtani az ember vagy mondjuk egy BSD-n. Ugyanis totál más eszközök vannak a két rendszeren, ha valaki nem olyan elvetemült, hogy DOS-ra is beszerez unixos toolokat.
A többi... hát ahhoz nem tudok igazán hozzászólni.
Csak már sokadik esetben látom, hogy néhányan kicsit túlzásba viszik az optimalizálás, meg a hordozhatóság kérdését.
Aki tudja, csinálja, aki nem tudja, tanítja... Hm... igazgatónak talán még jó lennék. :)
- A hozzászóláshoz be kell jelentkezni
Én se azt mondtam, hogy az informatikus diploma értéktelenebb volna, mint bármi más, hanem azt, hogy ennek a megszerzésével az emberek egy pszichológiailag speciális helyzetbe kerülnek, amit szerintem sokan nagyon rosszul kezelnek. Vagy istenkomplexusuk lesz, vagy mindent szögnek néznek, mert éppen kalapácsuk van.
- A hozzászóláshoz be kell jelentkezni
"úgy gondolja magáról, hogy az ő diplomája ugyanúgy diploma, mint bárki másé"
Hát lehet, hogy én nem bezsél jól mádzsár, de ez nagyon úgy hangzott, mintha... ;)
Aki tudja, csinálja, aki nem tudja, tanítja... Hm... igazgatónak talán még jó lennék. :)
- A hozzászóláshoz be kell jelentkezni
Tulajdonképpen megtaláltad a lényeges mondatot, csak ott érted félre, hogy ez nem értékítélet, hanem helyzetleírás volt. Az ő diplomája értékét tekintve ugyanolyan, mint bárki másé, viszont - néhány speciális esettől eltekintve - kezdeni csak úgy tud vele valamit, ha alkalmazkodik valamilyen teljesen más terület igényeihez, vagy ő maga ért ahhoz a bizonyos másik dologhoz. És ez az, amiben szerintem az informatikusok a fent vázolt okok miatt alulteljesítenek.
Az informatikusok között valószínű van egy csomó olyan ember, aki másra lett volna hivatott, csak valahogy beleszorult ebbe a szakmába és ennek a körein belül próbálja magát agyilag lefoglalni. Az ilyenekből lesznek ezek a bizonyos "aprólékosok".
- A hozzászóláshoz be kell jelentkezni
Biztosan létezik a jelenség.
Léteznek például az autószerelők is, akik számára minden járgány egy műalkotás, és úgy is állnak hozzá, és létezik olyan is (öcsém kocsija fogott ki ilyet), aki számára a légszűrő eltömődése úgy orvosolandó, hogy egy csavarhúzót kétszer beleszúrunk - a járgány tényleg jobban szuszogott utána, ezt a megoldást kéne tanítani.
- A hozzászóláshoz be kell jelentkezni
Maradva a hasonlatodnál, nem az a jó szakember, aki az autó minden egyes részét speciális célszerszámmal és módszerekkel tisztítja meg, hanem aki el tudja dönteni, hogy mikor kell a kifinomult módszer, és mikor elég ráköpni és megtörölni a gatyája szárán.
- A hozzászóláshoz be kell jelentkezni
"A másik, sokkal kifinomultabb tünet a triviális problémák általad is érzékelt aprólékos megközelítése."
Szerintem lenyegtelen, hogy informatika, matek, kemia, pszichologia vagy barmi mas. Aki egy formalis kepzest elvegez, az gyakorlatilag a diplomajaval egy kalapacsot kap, amivel a sajat szakteruleten belul a szoget beveri. Igy a diplomaosztot nevezhetnenk kalapacsosztonak is. Aki kepes kivulrol szemlelni egy kerdest (pl. nem vett reszt formalis kerdesben vagy csak egyszeruen megvan az a kepessege, hogy ne vesszen el az aprosagokban), annak fura lehet, hogy nem tudjak a matematikusok mi az a pont, a pszichologusok mi az intelligencia, a vegyeszek mi a kotes. Kisse torzitanak a peldak, csak annyit akarok erzekeltetni, hogy szerintem normalis, hogy egy egyszeru ciklus tobb figyelmet kapott, mint amennyit (szerintem) erdemel -- meg akkor is, ha elegge "gyakorlatiatlan" lett a szal a problemahoz kepest. Es a tanulsag az, hogy ha legkozelebb elbarmolok egy ciklust, akkor azt vagy a "flame", vagy a "kozossegi kerekasztal" temaba kell tenni :)
Ja es nem akarok diplomas / nem diplomas vitat. Csupan azert irtam formalis kepzest, mert az valamifele garancia kell legyen, hogy az ember eszkoztaraban van egy kisebb-nagyobb kalapacs. Ettol 20x akkora kalapacsa is lehet es 2000x nagyobbat is lendithet valaki egy azonos meretu kalapaccsal, aki mashonnan szerezte a tudast.
--
Sent from my Ericsson SH888
- A hozzászóláshoz be kell jelentkezni
A pont/kötés/intelligencia ügyében teljesen igazad van. Valóban, ez lehetne a vázolt jelenségkör "jóindulatú" magyarázata. A gond ott van, hogy ez nem magyarázza az általad is említett gyúlékony légkört, ami az informatikusok között teljesen általános. Elképzelhetetlennek tartom, hogy vegyészek, matematikusok vagy (pláne) pszichológusok abban a hangnemben társalogjanak egymással egy szakmai fórumon, ahogy azt itt sokan teszik. Pont ezért lepett meg engem annak idején teljesen, ami itt a HUP-on folyik. Az informatikusokból - legalábbis a magyar fórumokon - sokszor hiányzik a más területekre jellemző szakmai méltóság.
Pont ezért tartom sokkal valószínűbbnek, hogy ez inkább valami intellektuális bezártság kísérőtünete. Egy csomó informatikus egyszerűen sokkal okosabb annál, semhogy "csak" informatikával foglalkozzon. Mondták neki, hogy ez egy jó szakma, és tényleg jó a fizetése is, tehát nincs is semmi hajtóerő abba az irányba, hogy valami mást is tanuljon. Belül viszont lenne rá igényük, nem tudják önmagukat megvalósítani, ezért vagy egymásnak esnek a fórumokon, mint rabok a börtönben, vagy jó esetben csak szőrszálat hasogatnak.
- A hozzászóláshoz be kell jelentkezni
Nem tudom, hogy ez mennyire informatikus jelenseg, nem mozgok ilyen korokben. Hasonlo latogatottsagu egyeb szakmai portalt sem ismerek magyar nyelven es mas informatikai portalt sem szoktam olvastni. Szerintem egyszeruen a tomegenel fogva idekeverednek nagyhangu emberek / idiotak / stb, akik a kelletenel tobbszor talaljak meg a valasz gombot. Nem lepne meg, ha mas szakmai portalon is ez lenne, ha lenne ennyi latogato. Mo-n egyebkent is vibralnak az emberek a feszultsegtol s szerintem ez itt is lecsapodik. Nem hiszem, hogy olyan bonyolult lenne a dolgok dinamikaja, hogy az onmegvalositas csucsat el nem ert informatikusokra kellene fogni a gyulekony legkort.
--
Sent from my Ericsson SH888
- A hozzászóláshoz be kell jelentkezni
ehh..
seq -f %03g $START_NUM $STOP_NUM
--
Why did the chicken cross the road?
It was trying to get a signal on its iPhone 4.
- A hozzászóláshoz be kell jelentkezni
Tokeltes, koszonom Andras. Nem gondoltam volna, hogy egy ciklus ekkora erdeklodesre fog szamot tartani a hupon :)
Az egyeni probalkozasok azert (is?) nem sikerultek, mert egy 0-t O-nak neztem a fajlnevben: Fe203 szerepelt benne.
--
Sent from my Ericsson SH888
- A hozzászóláshoz be kell jelentkezni