perl ciklus kétszer (???!) fut le...
- Tovább (perl ciklus kétszer (???!) fut le...)
- 1092 megtekintés
Sziasztok!
Van két fájlom ilyen formában:
3213 1 lrwxrwxrwx 1 root root 21 Sep 7 21:19 /platform/SUNW,Netra-T12/kadb -> ../SUNW,Sun-Fire/kadb
Ehhez és hasonló sorokkal van tele. Pár ezer sor. Az egyik egy patch -elés előtti, a másik a patch -elés utáni fájlrendszer állapot. A két fájlban a sorok száma eltérő. Ki kellene "vonnom" az első fájlból a második sor tartalmát, úgy hogy sorok szerinti egyezések alapján hasonlítsam össze a két fájlt.
Gondoltam awk -ra, de nem használtam korábban. Tudnátok egy picit segíteni? Előre is köszike!
Üdv!
a legjobb leírást keresem!
Csaba
Hogyan parsolnátok akármiben a következőhöz hasonló változót:
USE="nls nptl nptlonly unicode emacs bash-completion X gtk jpeg jpeg2k gif tiff wmf
truetype png nsplugin alsa opengl gnome dvd dbus eds bzip2 dvdr qt3"
Amit nem lehet kihasználni:
* hogy hasonlít egy programsorhoz
* hogy az egyenlőségjel és a idézőjel valamint a változónév és az egyenlőség jel között nincs semmi
* hogy a változó nagybetűs
Amit ki lehet:
* A folytatódó indentálva van
* A változó nevek nincsenek indentálva
Perl, Python, Java érdekel.
Eselteg ha valaki tuja a nevét a problémának, linket bármit tud adni, érdekel.
Hali!
Szükségem lenne valakire aki okitana Perl alapokra.. hamár megvan a fonal akkor már meni fog magamtol is, de az alapok elsajátításához jo lenne egy tanár. Lehetőleg budapesti.. a legjobb ha 18. ker környéki...
Pascal-ban és Lazarusban van gyakorlatom, ha számít.
Ajánlatokat oradíj megjelölése melett várom... (ingyen lenne a legjobb :) )
ELőre is köszi.
Sziasztok !
Egy perl scriptet kellene rijak ami fileokbol szedegél ki stringeket, összehasonlít stb. A problémám a következö: az egyik filebol kell kiszednem azt hogy melyik könyvtárban található az a file amiböl az adatokra van szükségem. A fent említett file a: ../../../$valtzo, ".la"/.qt .
Ha ezt próbálom megnyitni perlben: open FILE, "/u/SDH/SMT/Data/Leiterplaten/$valtozo", ".la/", ".qt" de ez így nem müködik, az open azt mondja hogy: Unknow open() mode /u/SDH/.....
Hogy van ez helyesen ? doksikat nézegettem, de ezekre nem tér ki... ha az opent printre cserélem akkor a rendes elérési utat irja ki... holl rontom el ??
Köszi a segítséget elöre is !
Sz.
Sziasztok, ezt nem ertem:
#!/usr/local/bin/ruby
require "estraier"
require "fileutils"
include Estraier
FileUtils.touch('valami')
db=Database.new
unless db.open('/home/phaul/.ruby-hype', Database::DBWRITER | Database::DBCREAT)
puts ("Can't open database: " + db.err_msg(db.error))
exit
end
puts 'opened'
unless db.close
puts ("Can't close database: " + db.err_msg(db.error))
end
A problema az, hogy ha van valami nevu fajl akkor meg lehet nyitni az adatbazist, ha nincs akkor nem. (Ha a FileUtils.touch('valami') sort kiveszem akkor is meg lehet.) Nem nagyon latom az osszefuggest. Talan van valami IO singleton melyen amiben valami hiba jelzo bit bebillen a touch-nal?
Egyebkent
ruby-1.8.5p7 object oriented script language with threads
ruby-hyperestraier-1.0.0p3 Ruby interface to hyperestraier
Van egy ilyen ciklusom:
for sor in $(parancs1); do
echo "$sor"
done
Félóráig fut anélkül, hogy egy sort is kiirna, pedig a "parancs1" egy "line buffered" parancs, és átlag percenként produkál egy sort.
Úgy néz ki, mintha a $(...) konstrukció lenne bufferelve, és amig a buffer meg nem telik, addig a "sor" változóhoz nem rendel értéket.
Meg lehet valahogy oldani, hogy a ciklus "real-time", azaz max. sor bufferelt legyen, vagyis azonnal adjon értéket a "sor" változónak, amint parancs1 előállít egy sort?
Hogy kaphatnál meg egyszerűen sh-ban egy eszközdrl olvasott karakter kódját úgy, hogy számolni lehessen vele?
A konkrét szituáció: egy ASUS WL-500g Premium routeren, openwrt firmware-en szeretnék funkciókat rendelni az EZSetup és a Restore gombokhoz. Úgy tűnik, a gombok felengedett/lenyomott állapotát a /dev/gpio/in eszközről olvasott bájt alulról 1., ill. 5. bitjéből lehet megtudni, viszont a többi bit általam ismeretlen okokból nem mindig ugyanaz. Tehát egy innen olvasott karakter kódjával kéne bitenkénti műveleteket végeznem.
Mivel egy beágyazott eszközről van szó, minél egyszerűbben szeretném megoldani, és csak a busybox ash és néhány segédprogram áll rendelkezésre.
Egy eleg erdekes problemaba utkoztem.
Keszul egy script, ami jatekszervereket vezerel (benne dialog meg ilyenek)
Ugy terveztem, hogy barmilyen jatekszervert kepes legyen vezerelni (inditas, leallitas, stb...)
Ezert csinaltam hozza egy masik egyszeru scriptet amit a `foscript` lefuttat, es annak a valtozoit kene a foscriptnek hasznalnia.
A meghivando script igy nez ki:
#!/bin/sh
menucim="UT2004 vezérlő"
prog="ucc-bin"
indito="DM-Rankin?Game=XGame.xDeathMatch?"
log="~/ut2004/System/log"
configfile="*.ini"
Ezt a `foscript` hiba nelkul le is futtatta es valahogy ereztem, hogy a valtozok nem lesznek elerhetok a foscriptben. Igy is lett sajnos.
Tud erre valaki valami egyszeru megoldast, hogy ebben a formaban vagy hasonloan tudjon mukodni a dolog?