Keresés

Részletes keresés

kaktusztea Creative Commons License 2005.07.30 0 0 347
Beírtam egy másik topikba is, remélem nem baj:

Hello.

Egy kérdésem lenne:
Olyan script-et írnok, amelyik nézi a distrowatch.com-on, hogy jelent-e meg új k3b és ha igen, akkor lehúzza a forrást, lefordítja és deb csomagot csinál belőle.

Nem túl bonyolult, de a HTML tag-ekből nem tudom kibányászni a tar.gz file URL-jét.
A "K3B_URL=" sorban kene ezt megvalositani (kipontoztam).

A masik: hogyan tudom a verzioszamokat osszehasonlitani? (SOURCE=.. sor utan)

# ====================================================

#!/bin/sh

TEMPDIR=~/temp/k3b
TEMPFILE_1=$TEMPDIR/index.tmp1
TEMPFILE_2=$TEMPDIR/index.tmp2

# -------------------
DATUM=$(date '+%Y.%m.%d')
IDO=$(date +%R)

# Aktualis, telepitett k3b verzio
AKT_VERZIO=`COLUMNS=132 dpkg -l |grep k3b | grep -v libs |grep -v i18 |awk '{print $3}'`
AKT_VERZIO=${VERZIO%-*}

# Ha nincs fenn k3b
if [ "$AKT_VERZIO" == "" ];then
AKT_VERZIO=0.0
fi

# Temp konyvtar letrehozasa
mkdir -p ~/temp/k3b 2>/dev/null
cd ~/temp/k3b 2>/dev/null

# Regi temp cuccok torlese
if [ -d $TEMPDIR ];then
rm -rf $TEMPDIR/*
fi

# index.html file lementese (kozvetlenul nem megy!)
wget -q www.distrowatch.com

# Eloszures a for lassusaga miatt
grep k3b index.html |grep "tar.gz" > $TEMPFILE_1

# Sorokra bontas
for i in `cat $TEMPFILE_1`
do
echo $i >>$TEMPFILE_2
done

# A megfelelo sor kivalasztasa
HTMLSOR=`grep k3b $TEMPFILE_2 |grep "tar.gz"`
echo $HTMLSOR # erase



# HELP!!!!!!!!
K3B_URL= ...............



# tar.gz letoltese
wget -q $K3B_URL &>/dev/null
if [ $? != 0 ];then
echo -n $DATUM $IDO >> $TEMPDIR/error.log
echo "Nem jott le a tar.gz file!" >> $TEMPDIR/error.log
exit
fi

# A file meghatarozasa
SOURCE=`ls $TEMPDIR/*.tar.gz |grep k3b`


# TODO: verzioszam osszehasonlitas !!!!!!


# Kitomorites
tar xzf $SOURCE
if [ $? != 0 ];then
echo -n $DATUM $IDO >> $TEMPDIR/error.log
echo "Kitomoritesi hiba!" >> $TEMPDIR/error.log
exit
fi

DIR=`ls -al |grep drwx |grep k3b | awk '{print $8}'`
cd $DIR

# configure
env CPPFLAGS='-g -Wall -O2 -march=k7 -mcpu=i686' ./configure
if [ $? != 0 ];then
echo -n $DATUM $IDO >> $TEMPDIR/error.log
echo "Configure hiba!" >> $TEMPDIR/error.log
exit
fi

make
checkinstall --pkgname k3b -y

# ========================= End ==============================

Thnx!
DonQuijote Creative Commons License 2005.06.13 0 0 346
Nagyon ráérsz...
Előzmény: RogerWilco (345)
RogerWilco Creative Commons License 2005.06.13 0 0 345
A két fülem közötti hw/sw kombináció :-)

Ez ugyanaz az eset, mint hogy lekapom a fölösleges locale-kat, lokalizált man-oldalakat, stb. (Tényleg, slackre nem létezik a debianos localpurge?)

Tőlem szokatlan pedantéria - nincs rá szükségem, tehát le vele! :-)
Előzmény: DonQuijote (344)
DonQuijote Creative Commons License 2005.06.13 0 0 344
Ez USB-n van? Vagy milyen hardver az, ahol útban van 40 mega?
Előzmény: RogerWilco (342)
ex_lx Creative Commons License 2005.06.13 0 0 343
Egyszerűbbnek tűnik a patch által kisírt kimenetből kiszűrni az egyéb architektúrákra vonatkozó sorokat, mint "egyszerűen" kielemezni és újraépíteni a patch fájlokat.

Ezzel talán el lehet indulni.

$PATCHCMD | awk '
/arch\// {
if ( /arch\/i386/) print
next
}

{ print }
'
Előzmény: RogerWilco (342)
RogerWilco Creative Commons License 2005.06.13 0 0 342
Akkor nem kérdezném :-))

Egyébként arra kell, hogy a kernelforrásból le tudjam törölni a nem i386 specifikus architektúrákat, ne vigye a helyet. Viszont ha ezt megteszem, amikor pecselem a kernelt, állandóan sír, hogy nincs pl arch/ppc/xxx file, stb. Nem akarom a patch parancs kimenetét sem elnyomni klf kapcsolókkal, mert akkor nem látom, hogy másutt van-e gubanc.

Ha érdekel, erről a patchgyüjteményről van szó, igen királyságos.
Előzmény: NevemTeve (341)
NevemTeve Creative Commons License 2005.06.13 0 0 341
Hát, ha ez egyszerű feladat, akkor nem okozhat neked gondot... egyébként mire lenne jó?
Előzmény: RogerWilco (340)
RogerWilco Creative Commons License 2005.06.13 0 0 340
Hölgyek, urak,

egyszerü a feladat:

egy kernel-patchből kellene az összes olyan sort kilőni, ami nem az arch/i386 architekurára vonatkozik. Tehát az összes arch/ppc, arch/s340 stb-re vonatkozókat. Természetesen a nem az arch struktúra alatti patchek megmaradjanak!
ex_lx Creative Commons License 2005.05.23 0 0 339
"Amúgy a bináris file hekkelése sem tartozik a kifejezetten korrekt dolgok közé"

Jól is jött az a gawk hajdan, amikor norton editorral tönkretett headerű dbf-ekből kellett kimenteni az adatokat!
Előzmény: locsemege (336)
ex_lx Creative Commons License 2005.05.23 0 0 338
... hiába... végigolvasni és utána hozzászólni... :)
Előzmény: Zahy (332)
ex_lx Creative Commons License 2005.05.23 0 0 337
Nálam gawk van.
Természetesen kipróbáltam a tippet, mielőtt leírtam: a /bin/pingből csináltam /tmp/pinget, az ELF elffé változtatásával. Byte-ra azonos volt a kettő.
A nullok miatt azért nem is izgattam magam, mert (talán a manben, de most nem találom) olvastam, hogy a gawk sztringek sztenderd nullát is tartalmazhatnak (vagyis nem nulltermináltak).
Előzmény: Zahy (329)
locsemege Creative Commons License 2005.05.21 0 0 336
Köszönöm, hogy megnézted! Egyébként 3.1.3-as gawk-m van. Az igaz, hogy textre találták ki, de miért ne reménykedjen az ember, ha már ez a feladat. Amúgy a bináris file hekkelése sem tartozik a kifejezetten korrekt dolgok közé, ugyanakkor szükségünk van verziókövetésre.
Előzmény: Zahy (332)
thuram Creative Commons License 2005.05.21 0 0 335
Én sem értek hozzá:(, úgyhogy fogalmam sincs az sem tudom mi az a hotplug:(.
Előzmény: DonQuijote (334)
DonQuijote Creative Commons License 2005.05.21 0 0 334
Nem értek hozzá, de nem hotpluggal kéne megoldani?
Előzmény: thuram (333)
thuram Creative Commons License 2005.05.21 0 0 333
Sziasztok!

Hosszas erőlködés után sikerült életet lehelnem uhu alatt az Hp LJ 1000w nyomtatómba, azonban úgy tünik hogy a nyomtató minden inditásánál, vagy a szgép hideginditásánál végre kell hajtani a 'cat sihp.img > /dev/usb/lp0' parancsot (hogy betöltsön valami firmware t..:). ahogy egy külföldi listán irják :

"> Remember to load the firmware each time you turn on the printer (see
> second point (ez a cat es cucc)) furthermore, if you come from a windows session (I hope it's
> not your case :-/ ) turn off and on the printer and reload the firmware."


Ezt úgy oldottam meg hogy a /etc/init.d/cupsd elejébe beirtam a fenti parancsot, de gondolom ez nem túl szép megoldás, főleg ha már "bevan töltve" akkor feleslegesen tölti be megint.. Szóval erre keresnék valami szép megoldást, nincse valakinek szebb ötlete..
Zahy Creative Commons License 2005.05.21 0 0 332
No kipróbáltam. Lesújtó eredménnyel. (Perllel) csináltam egy fájlt, amiben <bájt><szóköz> formában volt 0-tól 255-ig minden karakter (ez ugye 512 bájtos eredményt adott). Ezelk után lefuttattam az eredeti, alant szereplő awk scriptet, a cserében előírva, hogy minden<szóköz>-t cseréljen "X" -re. Íme az eredmények:
$ nawk -vRS=ilyenuccselesz -vORS='' '{gsub(/ /, "X"); print}' < lo > lo1
$ gawk -vRS=ilyenuccselesz -vORS='' '{gsub(/ /, "X"); print}' < lo > lo2
$ mawk -vRS=ilyenuccselesz -vORS='' '{gsub(/ /, "X"); print}' < lo > lo3
$ ll lo lo?
-rw-r--r-- 1 zgabor zgabor - 512 Máj 21 00:01 lo
-rw-r--r-- 1 zgabor zgabor - 493 Máj 21 00:03 lo1
-rw-r--r-- 1 zgabor zgabor - 512 Máj 21 00:03 lo2
-rw-r--r-- 1 zgabor zgabor - 0 Máj 21 00:06 lo3

A fájlokat is megnézve, az látszik, hogy az egyetlen valódi (Kernighan-féle) awk (nawk néven szerepelt) sokat ront (azaz nem csak a NULL, és a SUBSEP zavar be - gyakorlatilag 0-9 -ig mindent töröl!) - és mellesleg némi sorvég jelet is beszúr, függetlenül attól, hogy nem kéne neki. A gawk korrekt volt, de számomra a legmeglepőbb a mawk kimenete volt - mindenféle hibaüzenet nélkül semmit se csinálni, azért ez szép teljesítmény!

Szóval ha Linux, vagy egyértelműen lehet gawk -ot használni, akkor OK, egyébként az AWK-t erre a feladatra el kell felejteni (amúgy is szöveg feldolgozására találták ki).
Ja:
$ nawk -V
awk version 20040207
$ gawk --version
GNU Awk 3.1.1
$ mawk -W version
mawk 1.3.3 Nov 1996, Copyright (C) Michael D. Brennan

(nawk -ból és asszem gawk-ból is van újabb, sőt mintha a nawk-nál pont valami NULL bájt hiba javításról olvastam volna anno)
locsemege Creative Commons License 2005.05.20 0 0 331
OrCAD design file. Vannak benne stringek, ezekre mutató pointerek, meg sok egyéb bináris dolog. Arra figyelek, hogy az eredeti hossz és a csere utáni megegyezzen. A probléma valójában az, hogy az svn-ből jövő revíziót automatizáltan cserélje a rajzlapokon.
Előzmény: NevemTeve (330)
NevemTeve Creative Commons License 2005.05.20 0 0 330
Az is kérdés lehet, hogy mennyire bináris ez a file?
Egyes file-ok olyan szenyók, hogy bináris hossztényezők vannak bennük, azután ha az ember lecserélget benne egyet-s-mást már el is rontotta az egészet...
Zahy Creative Commons License 2005.05.20 0 0 329
Ez jo, de mi a helyzet a fajlban levo NULL bajttal, es a SUBSEP valtozoban szereplo (man szerint alapbol 034 -es kodu) karakterrel? Valamelyik awk doksibol az remlik, hogy ezzel a ket karakterrel az awk nem banik tul jol? (Ebbol nyilvan a SUBSEP-et el lehet feledni pl meg egy eplicit ertekadassal, de a NULL-lal tudtommal ga'zok vannak.) Erdemes lenne egy tesztet megejteni, es kiprobalni mind a harom elterjedt AWK megvalositassal ("The on-true-AWK-by-Kernighan" = nawk, mawk es gawk).
Előzmény: ex_lx (321)
ex_lx Creative Commons License 2005.05.20 0 0 328
:))
Előzmény: DonQuijote (327)
DonQuijote Creative Commons License 2005.05.20 0 0 327
Türelmes gyerek vagy, én erre biztos csak annyit válaszoltam volna, hogy man awk.
Előzmény: ex_lx (326)
ex_lx Creative Commons License 2005.05.20 0 0 326
A -vORS='' éppen aszongya az awk-nak, hogy a kimeneti rekordok végére a semmit írd szeparátornak.
Azért kipróbáltam, mielőtt beírtam. :)
Előzmény: DonQuijote (325)
DonQuijote Creative Commons License 2005.05.20 0 0 325
Ez tetszik, de azért egy sorvéget odabiggyeszt a fájl végére, nem?
Előzmény: ex_lx (321)
ex_lx Creative Commons License 2005.05.20 0 0 324
Nagyon szívesen!

Jól érted a lényegét.
Előzmény: locsemege (322)
locsemege Creative Commons License 2005.05.20 0 0 323
Perlül nem beszélek. :(
Előzmény: DonQuijote (320)
locsemege Creative Commons License 2005.05.20 0 0 322
Köszi, ez tetszik! Tehát adjak meg rekord szeparátornak egy viszonylag hosszabb, soha elő nem forduló patternt, és így egyetlen soros lesz az egész file-om. Ki fogom próbálni.
Előzmény: ex_lx (321)
ex_lx Creative Commons License 2005.05.20 0 0 321
awk -vRS=ilyenuccselesz -vORS='' '{gsub(/amit/, "amire"); print}'

Ez persze berántja az egész miskulanciát a memóriába, de abból mostanság úgyis van bőven.
Előzmény: locsemege (319)
DonQuijote Creative Commons License 2005.05.20 0 0 320
Pl. perl. Olyan baromi gyors persze az se lesz...
Előzmény: locsemege (319)
locsemege Creative Commons License 2005.05.19 0 0 319
Ha bináris file-ban szeretnék mintát cserélni, annak van valami viszonylag egyszerű módja azon kívül, hogy megírom C-ben, vagy az egészet egy hex file-lá alakítom, patternt cserélek, majd binárissá alakítom? Néhány megabyte fölött ez már kínosan lassú bír lenni - bár nem próbáltam ki.

Nagyjából a sed-re lenne szükségem, de úgy tűnik, a 0x0d 0x0a-ból automatikusan 0x0a-t csinál. Márpedig egy bináris file-ban véletlenül előfordulhat a 0x0d 0x0a szekvencia.
eto nado znaty Creative Commons License 2005.05.16 0 0 318
"A 4.x-es gnuplot-ban már az unset a javasolt szintaxis." - Most már tudom. :) "Az yrange meg nem volt benne a feladatspecifikációdban ;)" - Valóban.
Előzmény: Gnudist (317)

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!