Hirdetés

2019. február 22., péntek

Gyorskeresés

Hozzászólások

(#101) Jester01 válasza ALI_G (#100) üzenetére


Jester01
(PH! kedvence)

Igen.

Jester

(#102) ALI_G


ALI_G
(PH! kedvence)

ment pü.

(#103) Jester01 válasza ALI_G (#102) üzenetére


Jester01
(PH! kedvence)

Érdekes, a múltkor még nagyon lelkiismeretes voltál :P

oper=$2
if [ ''$oper'' = ''x'' -o ''$oper'' = ''X'' ]
then
oper=''*''
fi
expr $1 ''$oper'' $3

Jester

(#104) ALI_G válasza Jester01 (#103) üzenetére


ALI_G
(PH! kedvence)

most ZH-t írok és ez többet számít. :) 55ig írhatom, van 5 feladat.

ez lenne az a számológépes progi, amit az első pü-ben írtam?

[Szerkesztve]

(#105) ALI_G


ALI_G
(PH! kedvence)

elmennek a pü-k, vagy nincs net? :)

az egrep-es majdnem megy, csak nemtom hogy is vannak a végére illeszkedés jele.

közben felfogtam a számológépeset. :DDD

[Szerkesztve]

(#106) Jester01 válasza ALI_G (#104) üzenetére


Jester01
(PH! kedvence)

Figyi, ha még fel sem ismered, akkor nem nagyon jár neked az a zh ...

regexp: 0*[0-7]+o
MOD: ha a teljes sorra kell illeszkednie akkor ^ az elejére és $ a végére.

számjegyes:
s=0
for((i=0;i<${#1};i++))
do
s=$((s+${1:i:1}))
done
echo $s

[Szerkesztve]

Jester

(#107) ALI_G válasza Jester01 (#106) üzenetére


ALI_G
(PH! kedvence)

a $ nem jutott eszembe hogy a végére az kell. thx.

(#108) ALI_G válasza Jester01 (#103) üzenetére


ALI_G
(PH! kedvence)

az oper változó miből jött? :F

(#109) Jester01 válasza ALI_G (#108) üzenetére


Jester01
(PH! kedvence)

Hogyhogy miből jött? A neve? Abból, hogy operátor. Az értéke pedig a második paraméter.

Jester

(#110) ALI_G válasza Jester01 (#109) üzenetére


ALI_G
(PH! kedvence)

így már értem. Csak én nem operátornak neveztem a műveleti jeleket.

Köszi szépen a segítséget. 5ből 4 jó lesz. Hála neked. Jövök egyel, vagy inkább már kettővel. Hol lax? 2 sörrel adósod vagyok.

(#111) KoVee84


KoVee84
(senior tag)

Sziasztok! A segítségeteket kérném. Nagiosról ( Linuxos rendszer- és hálózatfelügyelő) hallotatok már? Van vkinek netalántán vmi anyaga róla? Nagyon fontos lenne, előre is köszönöm mindenkinek! :R :R

(#112) ALI_G


ALI_G
(PH! kedvence)

Jester01
47 pontos lett a 100-ból. 50 a minimum. Elég érdekesnek tűnik ez nekem, met akimeket írtál az mind jó szerintem is. Holnap megyek reklamálni. 4-ből 5 feladat szerintem jó lett. kb. 70 pontnak kellett volna lennie.

(#113) Jester01 válasza ALI_G (#112) üzenetére


Jester01
(PH! kedvence)

:Y :O

Jester

(#114) ALI_G válasza Jester01 (#113) üzenetére


ALI_G
(PH! kedvence)

az az, kb. én is így reagáltam. Küldtem privátot!

(#115) zLegolas válasza ALI_G (#114) üzenetére


zLegolas
(őstag)

Csak tanárokkal ne kezdjen az ember... :P

Én normális vagyok! Megmondták a hangok is a fejemben!

(#116) gd5424


gd5424
(tag)

Hi!

Nemrég telepítettem fel az OpenBSD-t,és ha jól látom
itt ksh van meg sh.
Az lenne a kérdésem mi a különbség a shellek(bash,sh,ksh) között?
Ilettve van-e egyátalán lényeges különbség?

C64 6510 1MHz Proc, 64Kb Ram, C-1541-II Disk Drive, Tape Drive, Printer :)

(#117) zLegolas


zLegolas
(őstag)

Fogmosás közben merült fel bennem a következő kérdés.

Feladat:
szeretném egy mp3 mappa alkönyvtárainak tartalmát konvertálni 64kbps-be (szöveges anyag, zene nuku, így ez is optimális az mp3 lejátszóhoz...)
Az lenne e jó, ha csak akkor kezdene dolgozni az átkódoló, ha az mp3 fájl rátája nagyobb, mint 64kbps, az ezzel megegyező vagy kisebb állományok maradnának változatlanul.
Namármost a kérdés az, hogy hogyan tudom ezt az infót az mp3 fájlból kinyerni úgy, hogy a kapott értéket változóként felhasználhassam a scriptben?
Lehet, hogy a lame vagy a bladeeenc vagy mpg321 vagy valami ki tudja írni, otthon majd keresgélek, csak gondoltam hátha tud valaki fejből ilyen opciót/kapcsolót, megoldást...

Én normális vagyok! Megmondták a hangok is a fejemben!

(#118) Jester01 válasza zLegolas (#117) üzenetére


Jester01
(PH! kedvence)

Pl. mp3info. De biztos van rá ezer más progi is.

Jester

(#119) gd5424 válasza gd5424 (#116) üzenetére


gd5424
(tag)

Valaki?

Nemrég telepítettem fel az OpenBSD-t,és ha jól látom
itt ksh van meg sh.
Az lenne a kérdésem mi a különbség a shellek(bash,sh,ksh) között?
Ilettve van-e egyátalán lényeges különbség?

C64 6510 1MHz Proc, 64Kb Ram, C-1541-II Disk Drive, Tape Drive, Printer :)

(#120) Jester01 válasza gd5424 (#119) üzenetére


Jester01
(PH! kedvence)

sh az alap. A ksh és a bash is felülről kompatibilis vele. A bash és a ksh normál használatban elvileg felcserélhető. Állítólag a bash a 88as ksh továbbfejlesztése (mármint tudásában), ugyanakkor a 93as ksh viszont további újításokat tartalmaz.
Természetesen semmi akadálya annak, hogy basht tegyél a bsdre, ha tulajdonképpen ez a kérdés.

Jester

(#121) gd5424 válasza Jester01 (#120) üzenetére


gd5424
(tag)

Akkor tulajdonképpen mindegy,hogy melyiket használom?
Egy router gépen van az openbsd.
Köszi a válaszodat! :R :R :R

C64 6510 1MHz Proc, 64Kb Ram, C-1541-II Disk Drive, Tape Drive, Printer :)

(#122) zLegolas válasza zLegolas (#117) üzenetére


zLegolas
(őstag)

Üdvözlet!

Nos, elkezdtem a #117-ben vázolt témát, (az mp3info valóban elő tudja csalogatni a bitrátát, köszönet érte!) de el is akadtam. A következő a helyzet:


...
for i in *.mp3;
do
bitrata=`mp3info -x $i | grep ''Audio'' | cut -c14-15`
echo ''A bitrata: $bitrata''
if (''$bitrata'' > ''64'');
then echo ''Kodolok!''
else echo ''Nem kodolok!''
fi
...



A gondom az, hogy nem tudtam rájönni, hogy az if részben az értékek összehasonlítása (és az ennek megfelelő elágazás) korrektül megtörténjen. Szerintem valami szintaktikai probléma lesz...
(A $bitrata-t kiiratva korektül megjelenik pl. a 64)

Hálás lennék, ha valaki megokosítana ;)

[Szerkesztve]

Én normális vagyok! Megmondták a hangok is a fejemben!

(#123) Finwe


Finwe
(őstag)

Hello!

1x láttam egy xp-t futó shell konzolt, nem tudjátok honnan lehetne letölteni?

-{PoH}- Patriots of Hungary

(#124) ngabor2 válasza Finwe (#123) üzenetére


ngabor2
(PH! nagyúr)

cygwin. [link]
remélem erre gondoltál. jó kis cucc, akár X-et is tud.

(#125) Jester01 válasza zLegolas (#122) üzenetére


Jester01
(PH! kedvence)

Azóta már biztos megokosítottak, de a biztonság kedvéért elárulom, hogy dupla zárójel kell. if (( $bitrata > 64 )) ...

Jester

(#126) GD


GD
(PH! addikt)

ngabor2 say:
''2x van benne echo $i, az írja ki.'

[link] itt hátha részletesebben tudnak segíteni. (ez baráti jótanács, nem moderátori. ideje lenne azt a topikot is felrázni egy kicsit. )''


#! /bin/sh

for i in `seq 10`
do
echo $i
done

i=1

while [ $i -le 10 ]
do
echo $i
i=`expr $i + 1`

done | tee szamok.txt
exit 0



ha az első echo $i-t szedem ki, elhal, ha a másodikat, akkor nem ír bele a txt-be, ha mindkettő marad, akkor kétszer írja a képernyőre.. :U


[Szerkesztve]

(#127) dabadab válasza GD (#126) üzenetére


dabadab
(Jómunkásember)

Az elsonel nem csak az echot kell kiszedni, hanem az egesz for ciklust, mert az sh-nal nem lehet ures a ciklusmag.

DRM is theft

(#128) GD válasza dabadab (#127) üzenetére


GD
(PH! addikt)

jajmá, milyen vacak könyvet vettem én? ehhh
akkor, hogy is néz ki a jó megoldás?
ez a példa a könyv szerint a ''ciklusok működésének bemutatására íródott''
szép kis bemutatás :B

[Szerkesztve]

(#129) dabadab válasza GD (#128) üzenetére


dabadab
(Jómunkásember)

Most mi a baj? Tenyleg be is mutatja oket rendesen, van egy for ciklus meg egy while.
A hiba attol volt, hogy belenyultal (nem megfelelo reszt kommenteztel ki).

DRM is theft

(#130) GD válasza dabadab (#129) üzenetére


GD
(PH! addikt)

perpill semmi nincs kikommentezve..dettó könyv copy, minden jó, csak az a alap baj hogy kétszer írja ki 1-10ig a képernyőre..

(#131) dabadab válasza GD (#130) üzenetére


dabadab
(Jómunkásember)

Es az miert baj, hogy ketszer irja ki? Ket kulonbozo ciklus van a peldaban arra, hogy egytol tizig kiirja a szamokat, persze, hogy ketszer irja ki.

DRM is theft

(#132) GD válasza dabadab (#131) üzenetére


GD
(PH! addikt)

igen, még az éjszaka rájöttem, én vagyok a ''láma'' alias gyakorlatlan..
ha egyszer akarom kiíratni, az egyik ciklust kiiktatom, a másik működik, továbbá bármelyik a done és tee-vel ki is írja file-be, köszi..
szóval ez a két ciklus saját formátumában, ugyan azt a feladatot képes ellátni

következő lecke...next mission :D majd még hallotok rólam.. ;]

[Szerkesztve]

(#134) loszerafin


loszerafin
(senior tag)

Hát, a feladat nem nehéz, azaz első ránézésre megoldható.
Viszont halál unalmas.
Esetleg írj hozzá valami algoritmust, aztán majd átültetjük bash-ra.

[link]

Különösen a tömbökkel foglalkozó részt olvasgasd.

Jut eszembe, van valami megszorítás a használható parancsokra vonatkozóan?
Bash shell jó lesz?

(#135) loszerafin


loszerafin
(senior tag)

Ha az elsőt meg tudod csinálni, akkor a másodikat érdemes az első kimenetéből
legyártani a convert segítségével.
Azaz a 2. feladat az eléggé egyszerű lesz, pár sorra tippelem a hosszát.

(#137) loszerafin


loszerafin
(senior tag)

Figyu, én komolyan gondoltam, hogy írj hozzá algoritmust.
Tényleg nincs kedvem tornáztatni ezzel az agyamat, van elég elgondolkodtató saját feladatom...

(#138) peterszky válasza loszerafin (#137) üzenetére


peterszky
(őstag)

lehet, hogy ez egy hülye kérdés lesz :B
az a leírás nem valami algoritmus szerűség?

What else you gonna do on a Saturday?

(#139) loszerafin válasza peterszky (#138) üzenetére


loszerafin
(senior tag)

Azt hiszem, az elvárások tényleg egy kicsit magasak.
Figyu, te bölcsész vagy az eltén? De akkor minek a unix?

a, minden algoritmus, ami nem maga kód és a feladattal foglalkozik.
b, de nyilván én egy kissé kódhoz-közelebbi-algoritmusra gondoltam
c, semmi kedvem elolvasni azt a rengeteg szöveget ami a feladathoz tartozik
d, olvasd el Te, írd meg az algoritmust, majd a részeinek bash-ba kódolásában segítek

Ha pedig kész megoldást akarsz, mondd azt és ne kertelj.


(#140) loszerafin válasza loszerafin (#139) üzenetére


loszerafin
(senior tag)

Jajj, bocsi, elsőéves vagy, azaz most kezdted.
Én vmiért azt gondoltam, hogy már egy évet lehúztál.

Ebben az esetben teljesen kezdő vagy?
Akkor viszont ez túl mély víz. Még algoritmust se tudsz írni? Akkor minek ilyen feladat?

De hát volt felvételi, nem? Vagy az nem programozásból volt?

Na, szóval:
Próbáld meg leírni magadnak, hogy oldanád meg a feladatot, ha Te volnál a számítógép.

Több lépésben:
1. fogalmazd meg a feladatot, saját magadnak érthetően.
2. Próbáld megoldani a feladatot papíron, azaz tervezz magadnak különböző inputokat, és
rajzold meg hozzá a kimenetet.
3. Próbáld egyre ''gépiesebben'' megoldani, azaz egyre kevésbé használd az eszed a megoldáskor. Az intuíciódat teljesen kapcsold ki. Kb. egy 1,5-3 éves gyerek szintjére ''süllyedj'' le, aki mindent szó szerint vesz és csak a szájába rágott dolgokat tudja megcsinálni, azokból is max. 1-2 lépést tud egyszerre megjegyezni.
4. Egyre jobban támaszkodj ismétlődő, egyszerű lépésekre. Ezeket az egszerű lépéseket nevezd el találóan (=rövid, de velős név)
5. A látásodat szűkítsd le egyetlen sakk-mezőre és a szemed vezéreld a táblán parancsokkal.
6. Játszd el, hogy sakk-robot vagy, akinek egyetlen feladata a táblára tenni a figurákat, a betáplált állásnak megfelelően.
7. A memóriád szűkítsd le néhány rekeszre, ezekbe egyszerű dolgokat tehetsz, de ezután csak a betett dolgokra emlékezhetsz.


Írd ide a végső megoldási lépéseidet.


(#141) loszerafin válasza loszerafin (#140) üzenetére


loszerafin
(senior tag)

Még egy kis info:

Van egy módszer, felülről-lefelé-nek hívják:

0.
Az inputnak megfelelően kiírom a bábukat tartalmazó sakktáblát.

1.
a,Beolvasom az inputot
b,Kiszámolom az eredményt
c,Kiírom az eredményt

2.
a1,Beolvasom a sorokat
a2,Szétbontom a sorokat
a3,Ellenőrzöm a részeket
b1,Szétbontom a részeket bábú-oszlop-sor részekre
b2,Ráteszem az elképzelt sakktáblámra a bábukat
c, Kiírom a sakktáblámat

De lehetne alulról-felfelé is építkezni:

Ahhoz, hogy kiírjam egy sakktábla képét, előszőr tárolnom kell.
Legyen , pl. egy mátrixom: TABLA[s,o] értéke legyenn a s. sor és o.adik oszlopban levő figura neve.
Kell nekem egy Táblára parancs, ami betesz egy figurát a táblára, meg egy Kiír parancs, ami kiírja a táblát. Meg kellene egy Beolv parancs, ami beolvas egyetlen bábuállást.

Persze kellene egy Sorbeolv, ami beolvas egy sornyi bábuállást. Ez nem állna másból, mint pár Beolv-ból.
Akkor jó lenne egy KétsorBeolv, ami két Sorbeolv lenne.

stb....

És még van sok egyéb.
Hogy melyiket választod, édesmindegy, csak az eredmény legyen jó.
A JÓ nem csak azt jelenti, hogy működik. Fontos szempontok
(KISS)
a, egyszerűség
b, részekre legyen bontva, a részek egyetlen egy dolgot csináljanak, de azt jól
c, legyen dokumentált
d, hibás inputra se szálljon el
e, Kerüld el a kerék felfedezését, használj már meglévő parancsokat


Sajnos, azt kell mondjam, a shell programozás abban némiképp eltér a hagyományos programozástól, hogy az ember itt próbálkozik. Pár meglévő parancs összekapcsolásával írják a scripteket, majd egyre bonyolítják, egy szint után pedig önálló részekre szedik.

De ehhez bizony ismerni kell a parancsokat és a gyakori kapcsolóikat.

(#142) peterszky válasza loszerafin (#141) üzenetére


peterszky
(őstag)

igen, első félévem az iskolában és kb 0ról kezdtem a Linuxot, ezt nem írtam.
ahogy hazaértem átnézem azokat amiket írtál
az a gondom, hogy ilyen mátrixszerűségekről még szó sem volt, de a beadandóban kérik
és most 3 hétig nem is lesz EA, mert okt 23 aztán szünet, utána meg már be kell adni a dolgot
mégegyszer köszi, hogy segítesz, ha tudom majd meghálálom

[Szerkesztve]

What else you gonna do on a Saturday?

(#143) loszerafin válasza peterszky (#142) üzenetére


loszerafin
(senior tag)

Írtam egy kis awk scriptet:

BEGIN {

for (r=1; r<=8; r++){
for (c=1; c<=8; c++) {
if ((r+c) % 2 == 0) TABLA[r,c]='' ''; else TABLA[r,c]=''*''
}
}

}

TABLA[$3,$2]=$1;

END {

for (r=1; r<=8; r++){
printf ''|'';
for (c=1; c<=8; c++) {
printf TABLA[r,c]
}
print ''|'';
}

}


Ennek egy ilyen input fájl kell:


B 1 1
H 2 1
F 3 1
B 8 1
F 4 3
f 4 4
g 3 5
g 7 5
g 4 7


Az első karakter a sakkbábu, nagybetűvel a fekete, kicsivel a fehér. Gyalogot is jelölni kell!
A második oszlop az oszlop sorszáma, harmadik a sor.


És ez az eredménye:

|BHF* * B|
|* * * * |
| * F * *|
|* *f* * |
| *g* *g*|
|* * * * |
| * g * *|
|* * * * |

(#144) loszerafin válasza loszerafin (#143) üzenetére


loszerafin
(senior tag)

Indítás:

awk -f sakk.awk myinput

Írj köré bash programot, ami
1. Ellenőrzi az inputot
2. Átalakítja úgy, hogy jó legyen ennek az awk scriptnek

(#145) loszerafin válasza loszerafin (#144) üzenetére


loszerafin
(senior tag)

Még annyit, hogy mire be kell adni, a google már indexeli ezt a fórumot, a tanár meg könnyedén rá fog találni a linkedre.

(#146) peterszky válasza loszerafin (#145) üzenetére


peterszky
(őstag)

a hozzászólást lehet töröltetni :DDD
egyébként nagyon szépen köszönöm! ilyesmi információra lett volna szükségem, hogy legyen valami, amin elindulhatok. remélem azért még gyakon is kapunk valami használható parancsokat. tényleg nagyon sokat segítettél
a hsz-okat elmentettem, ha lesz még valami gondom, akkor priviben megkereslek, ha nem gond.

[Szerkesztve]

What else you gonna do on a Saturday?

(#147) loszerafin válasza peterszky (#146) üzenetére


loszerafin
(senior tag)

Ahhoz, hogy a feladat inputjából ennek az awk scriptnek az inputját előállítsd, a következők kellenek (persze, lehet mással is):

sed
tr
regexp-ekről a legjobb leírás: man grep
És az alapmű:
advanced bash scripting guide

(#148) Jester01 válasza loszerafin (#143) üzenetére


Jester01
(PH! kedvence)

Ugyanez bash shell script formájában:

for ((r=1; r<=8; r++))
do
for ((c=1; c<=8; c++))
do
if [[ $(( (r+c) % 2 )) == 0 ]]
then
TABLA[$((r * 8 + c))]='' ''
else
TABLA[$((r * 8 + c))]=''*''
fi
done
done

while read f c r
do
TABLA[$((r * 8 + c))]=''$f''
done

for ((r=1; r<=8; r++))
do
echo -n ''|''
for ((c=1; c<=8; c++))
do
echo -n ''${TABLA[r * 8 + c]}''
done
echo ''|''
done


Azt hiszem magától értetõdõ, leszámítva, hogy kevésbé olvasható.
Annyit fûznék még hozzá, hogy bash-ban nincs 2 dimenziós tömb (illetve asszociatív - az awk-ban ez van) ezért ki kellett lapítani egy dimenziósra a sakktáblát.

Jester

(#149) amargo


amargo
(PH! addikt)

Sziasztok!

Shellben egy stringnek, mind1, hoyg paraméter az vagy egy file sorainak stb akárminek a tartalma. De hogy tudok elemenként hivatkozni rá?

mint pl C-ben?
string tmp = ''valami'';
tmp[ 1 ];

gyanítom hogy itt is van erre valami megoldás, de mi?

Másik kérdésem, sed ben tübb parancsot is össze lehet fűzni. de nekem csak pipeokon keresztűl sikerült, de gondolom ennél van szebb megoldása is mint :
sed ''s/e'/é/g'' | sed ''s/a'/á/g'' | sed ''s/i'/í/g'' | sed ''s/o'/ó/g'' | sed ''s/o:/ö/g'' | sed ''s/o\''/ő/g'' | .. stb
próbáltam őssze kötni a parancsokat, mármint hogy ''s/\(e'\)*(a'\)/\1\2/''
de nem akar össze jönni nekem.. nem is nagyon értem még ezt a sed et..
ha tud valaki segíteni azt megköszönném
amargo

“The workdays are long and the weekend is short? Make a turn! Bike every day, bike to work too!”

(#150) Jester01 válasza amargo (#149) üzenetére


Jester01
(PH! kedvence)

${tmp:1:1} (man bash)

sed-ben kapcsoszárójelek között lehet parancsokat csoportosítani (pontosvesszõvel elválasztva). man sed.

Jester

Copyright © 2000-2019 PROHARDVER Informatikai Kft.