Szkriptek: Python, Perl, Bash, ...

két fájl különbsége

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!

Többsoros változók parsolása

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.

Perl Tanárt Keresek

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.

Perl: open FILE, "../../../$valtozo, ".qt"...

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.

ruby-hyperestraier

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

"Real time" bash ciklus - nem lehetséges?

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?

Karakter=>kód

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.

Valtozok athozatala masik shell scriptbol

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?