- Luck Dragon: Asszociációs játék. :)
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- sziku69: Fűzzük össze a szavakat :)
- sziku69: Szólánc.
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- Argos: Szeretem az ecetfát
- No Voice in the Galaxy
- Parci: Milyen mosógépet vegyek?
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- bambano: Bambanő háza tája
Új hozzászólás Aktív témák
-
bambano
titán
válasz
Tele von Zsinór #193 üzenetére
A sed nem várja el, hogy a regexpben / legyen a paraméter elválasztó, hanem az az elválasztó, amit először megtalál az s betű után.
Tehát ha /-t akarsz csereberélni, akkor hasznosabb lehet más elválasztót találni, mint pl. a vessző
sed -e 's,/,\\,g' -
Jester01
veterán
válasz
Metalwarrior #196 üzenetére
Mondjuk soronként beolvasod a fájlt, majd a ${valtozo#minta} használatával megkeresed az összes elõfordulást.
-
peterszky
őstag
Készen vagyok a feladatokkal, amelyek most már hibátlanul működnek.
Ezúton szeretném megköszönni az összes kedves fórumtársnak, főleg Jester01-nek és loszerafinnak a segítségét!
További jó shell script írást mindenkinek -
Metalwarrior
tag
Üdv!
grep ''.xy'' file -ból megtalálja a kívánt karakterláncot, meg lehetne oldani, hogy ezt a jelen esetben 3 karaktert kivágjam és beletegyem egy változóba/ fájlba?
Vagy ha nem megoldtható akkor esetleg más ötlet. A feledat annyi, hogy adot az xy és kell a .-tal jelölt karakter -
Jester01
veterán
válasz
Tele von Zsinór #193 üzenetére
> echo ''foo/bar'' | sed 's/\//\\/g'
foo\bar
Részletesen:
s: parancs
/: paraméter elválasztó
\/: védett per karakter
/: paraméter elválasztó
\\: védett backslash karakter
/: paraméter elválasztó
g: parancs módosító
Amúgy sima karaktercserére a tr parancs való, vagy a bash beépített operátora:
> t=''foo/bar''
> echo ${t//\//\\}
foo\bar -
Jester01
veterán
válasz
Tele von Zsinór #192 üzenetére
Nekem kiválóan mûködik.
Ugyanakkor:
* A vagy operátort egy feltételen belül is használhatod:
if [[ ''$i'' -eq ''1'' || ''$i'' -eq ''3'' || ''$i'' -eq ''5'' || ''$i'' -eq ''7'' ]]
* Az eq az numerikus összehasonlítás, a számok köré felesleges az idézõjel.
* Az egészre sokkal egyszerûbb a párosságot vizsgálni:
if [[ $((i % 2)) -eq 1 ]]
then
feltolt_szokoz
else
feltolt_csillag
fi
* vagy vizsgálat nélkül:
for ((i=1; i<=7; i+=1))
do
feltolt_szokoz
i=$((i + 1))
feltolt_csillag
done -
Tele von Zsinór
őstag
Más kérdés, nem teljesen illik ide, de felteszem: hogy lehet egyik sima perjelből backslasht csinálni? a sed s///\/ nem megy, eddig ezzel próbálkoztam, illetve különféle escapelt verzióival.
-
Tele von Zsinór
őstag
Van ez a bash script részletem:
for ((i=1;i<=8;i++)); do
if ( [[ ''$i'' -eq ''1'' ]] || [[ ''$i'' -eq ''3'' ]] || [[ ''$i'' -eq ''5'' ]] || [[ ''$i'' -eq ''7'' ]] );
then
feltolt_szokoz;
else
feltolt_csillag;
fi;
done
Ha a feltolt_* elé rakok echot, akkor azt kiírja, de látszólag, mindig a feltolt_szokoz hívódik meg.
Mindkettő egy többdimenziós tömb $i-edik sorát tölti fel, ha kell, postolom azokat is. -
Metalwarrior
tag
Helló!
Sürgősen kérném segítségeteket. Standart input első 2 sorát kellene beolvasni és azután megkeresni xyk karaktert, xz koordinátákat tartalmaz ahova a k karaktert kell kiírni standart outputra.
Semmit se konyítok a linxhoz de nagyon kellene a script. Légyszi segítsetek. -
joalb82
csendes tag
Köszönön szépen a segítséget! Nagyon hálás vagyok!
-
amargo
addikt
Még korlátozott tudástárammal ennyire jutottam, elviekben ez jól megoldja az adott feladatot. 2 dimenziós tömböt nem tudom, hogy lehet itt csinálni.. ezért 1el csináltam. Sok minden nem elegáns benne, de még nem ismerem, hogy lehet függvényeket csinálni változókat átadni stb. Azt olvastam, hogy van, C-shell is.. de gondolom a bash ből csak hívni lehet.
A script maga feltételezi, hogy a egyenlő dimenzióju mártixok az adat forrás, ha nem, akkor hibás az eredmény akkor uzi és kilép.
tmb=0
for k in `cat ''$1''`
do
matrix[tmb]=$k
let tmb=tmb+1
done
echo ''elem: ''$tmb
sor=`grep ''^[0-9]'' ''$1'' | wc -l`
let dim=$tmb/$sor
if [ $dim != $sor ]; then
echo Nem megfelelo matrix
exit 1
fi
echo ''sor: ''$sor
b=0
oszell=0
sorell=0
for((i=0;i<$sor;i++));do
let sorok=${matrix[i+b]}+${matrix[i+b+1]}+${matrix[i+b+2]}+${matrix[i+b+3]}
#echo ''sor'' $((i+1)) $sorok
let b=b+3
let oszp=${matrix}+${matrix[i+4]}+${matrix[i+8]}+${matrix[i+12]}
#echo ''oszlop''$((i+1)) $oszp
if [ $i -gt 0 ]; then
if [ $sorell != $sorok ]; then
echo ''hibas a $((i+1)) sor''
else
sorell=$sorok
fi
if [ $oszell != $oszp ]; then
echo ''hibas a $((i+1)) oszlop''
else
oszell=$oszp
fi
else
sorell=$sorok
oszell=$oszp
fi
done -
joalb82
csendes tag
Én nem értek szinte egy szót sem
. Nagyon kétségbe vagyok esve, az meg ugye durva kérés lenne hogy ha arra kérnélek titeket hogy valaki küldje el vagy írja ide a megoldást vagy amire eddig jutottatok??? Nagyon nem akarok megbukni. Segítsetek léccccci.
[Szerkesztve] -
amargo
addikt
válasz
Jester01 #184 üzenetére
Ez remek! Közben rátaláltam googlin, hogy itt újra kellene neki foglalni a memóriát és az exporot hazsnálni stb.. de ez így ahogy írtad működik.
Nagyon köszönöm!
Van 5leted, hogy a k elemet hogy számolom össze? tehát, hogy 1sorba hány adat került? tehát a, ha
for k in a b c d e f
akkor megtudjam, a cikluson kívül, hogy a k értéke 6
[Szerkesztve] -
amargo
addikt
Ismét kérdésem volna:
tmb=1
matrix[0]=1
cat ''$1'' | while read
do
for k in $REPLY
do
matrix[tmb]=$k
#echo $k
let tmb=tmb+1
done
echo ${matrix[1]}
echo ${matrix[2]}
done
echo ${matrix[1]}
A belső ciklusban kiírja a matrix tartalmát megfelelően, de hogy lehet olyan változót csinálni, ami a ciklusokon kívűl is láttszik? Tehát, mint a done után is megtartja az értékét? -
joalb82
csendes tag
Hu ténleg! Bocsi meg köszi! Istenek vagytok!
-
joalb82
csendes tag
De ha tudtok megoldást az is jöhet
-
joalb82
csendes tag
Hi! egy kis segítséget szeretnék kérni, a következő feladatot kaptam (mint beadandót) és még csak neki sem tudok álni, pedig ettől főgg a gyakjegyem
.
Írjon szűrőt, ami vagy a paraméterként kapott fájlt vagy a standard inputot dolgozza fel.
Az input egy sakkjáték állás, két sorban. (Az input többi sorával - ha van - nem kell foglalkozni.) Az első sorban a világos figurákat, a másodikban a sötéteket soroljuk fel. Egy figurát 2 vagy 3 jel ad meg. Ebből két jel a figura helye (a1-h8), egy ezeket megelőző jel a figura betűje (B/F/H/V/K, mindig nagybetű), ami elmarad, ha ''gyalog'' a figura. A felsorolást helyköz és/vagy vessző tagolja, a tagoló jelek tetszőleges sorozata is szerepelhet egyetlen elválasztó jel helyett.
Ellenőrizni kell, hogy az input az előző pontbeli szabályoknak megfelel-e. Ha nem, azt hibaként kell kezelni. Az is hiba, ha két figurát ugyanarra a helyre kellene tenni, vagy hiányzik valamelyik király, vagy valamelyik figurából több van, mint a játék kezdetén. (Elvileg lehetne több B/H/F/V a ''gyalogátváltozás'' miatt, de ezt nem engedi meg a feladat.)
Ha nem hibás az input, akkor az állást a standard outputra kell írni, 8x8-as jelmátrix formában, úgy, hogy a világos figurákat a megfelelő nagybetű, a sötéteket a megfelelő kisbetű, az üres világos mezőket helyköz, az üres sötéteket pedig ''*'' jelzi.
Pl. input az alattuk levő eredményt adja:
Kc6 d6 Bc7 g7
Ba4 b6 Kg8
* * *k*
* B * G
gKG * *
* * * *
b* * * *
* * * *
* * * *
* * * *
Jó mi? Remélem Ti tudtok segíteni! Nagyon halás lennék érte! Rajtam ki fogot a feladat rendesen!Ha megoldást nem is tudtok de egy kétt tipet vagy tanácsot adjatok lécci! Nagyon fontos lenne! Előre is köszi
-
seaky77
tag
válasz
Jester01 #167 üzenetére
Köszönöm a segítséget kipróbáltam
de ezt csinálta
bash-3.1$ sed '4{x;d};5~1{x;p}' < test.dat
11111
22222
33333
44444
44444
55555
55555
66666
66666
77777
77777
88888
88888
bash-3.1$
input file ez volt:
bash-3.1$ cat test.dat
11111
22222
33333
44444
55555
66666
77777
88888
99999
bash-3.1$
Köszönöm,
seaky -
bambano
titán
Tehát az, hogy egy mezőn ne álljon két figura, az ennyi:
sed -e 's/ //g' -e 's/,/\n/g' allas.txt|sed -e 's/[a-h][1-8]$/|&/' |sort -t\| -k 2 |uniq -t\| -f1 -c|sed -e 's/^[ ]*//'|grep -v ^1
Amit kiír, azon sorokban levő mezőkön több figura áll.
A uniq és a count célszerű használatával a másik részfeladat is egyszerűen megoldható, ennek bizonyítását az olvasóra bízzuk
Szerk: most olvasom végig, kicsit lefutott már ez a thread, sorry
[Szerkesztve] -
Jester01
veterán
Én meg a #148-ban mutatott kóddal (persze az ütközést is ellenőrizve) betölteném egy tömbbe, és onnan az egész triviális.
-
bambano
titán
válasz
peterszky #161 üzenetére
Én átkonvertálnám egy olyan filera, hogy egy bábu, egy sor, egy sorban a bábu neve, mezőszeparátor, pozíció, majd sorbarendezném első mező szerint, megszámolnám, hány bábu van, sorba rendezném második mező szerint, megszámolnám, hány olyan mező van, ami egynél többször szerepel.
Az átalakítás kb. ennyi:
sed -e 's/ //g' -e 's/,/\n/g' allas.txt|sed -e 's/[a-h][1-8]$/|&/'
a többit még szöszölöm a manualból, ha még érdekes -
seaky77
tag
-
loszerafin
senior tag
válasz
loszerafin #169 üzenetére
Vagy:
Mindent kitörölni, ami nem sakkbábú-betű, betűnként újsorba tenni (=>minden sorban egyetlen betű lesz, azaz annyi sor, ahány bábú), sort-olni, uniq -c -vel megszámolhatod egyszerre, miből hány van.
Ezzel csak azt akarom mondani, hogy mindenre 1000+1 megoldás van. -
loszerafin
senior tag
-
seaky77
tag
Sziasztok,
Van egy problémám amit nem tudok megoldani remélem tudtok segíteni van egy fileom aminek az elejéről 3 sort és a végéről 1-et le kéne vágnom, amint a példa is mutatja a sorok között bináris adat van. Megtudom ezt csinálni shell scripttel?
Sajnos a head -n-1 nincs imlplementálva a célhardver linuxában. head -n implementálva. tail -n tail -n+1 implementálva. sed, awk is van. Meg elvileg minden, eddig csak a head-nél vettem észre a hibát. Tudnátok segíten hogy oldhatnám meg?
pl: állomány
-----------------------------7d62af20c052c
Content-Disposition: form-data; name=''test''; filename=''C:\test.dat''
Content-Type: application/octet-stream
ELF Đ
-----------------------------7d62af20c052c
Köszi,
Seaky -
peterszky
őstag
válasz
loszerafin #164 üzenetére
köszi mindet
ma beszéltem egy évfolyamtársammal ( most mondta, hogy készen van velük ) és kérdezgettem, hogyan lenne érdemes
bemenet: két read, így a többit nem veszi figyelembe
ellenőrzés: sok if és grep egyszerű módon
pl a bástya ellenőrzésénél:
greppel kiszedni a 3 betűs kifejezések első betűjét ( jelen esetben B vagy b, mert bástya ) és azt megnézni, hogy 2nél több-e, ha igen, akkor hiba
ezek alapján nagyjából meg tudom csinálni ( azaz nagyon remélem)
-
peterszky
őstag
ha a \ (sortörés) jellel adunk meg inputot, akkor hogyan lehet azt elérni, hogy csak az első 2 sort nézze a script?
Kc6, d6, Bc7, g7
Ba4 b6 Kg8
''Az input egy sakkjáték állás, két sorban. (Az input többi sorával - ha van - nem kell foglalkozni.) Az első sorban a világos figurákat, a másodikban a sötéteket soroljuk fel. Egy figurát 2 vagy 3 jel ad meg. Ebből két jel a figura helye (a1-h8), egy ezeket megelőző jel a figura betűje (B/F/H/V/K, mindig nagybetű), ami elmarad, ha ''gyalog'' a figura. A felsorolást helyköz és/vagy vessző tagolja, a tagoló jelek tetszőleges sorozata is szerepelhet egyetlen elválasztó jel helyett.
Ellenőrizni kell, hogy az input az előző pontbeli szabályoknak megfelel-e. Ha nem, azt hibaként kell kezelni. Az is hiba, ha két figurát ugyanarra a helyre kellene tenni, vagy hiányzik valamelyik király, vagy valamelyik figurából több van, mint a játék kezdetén. (Elvileg lehetne több B/H/F/V a ''gyalogátváltozás'' miatt, de ezt nem engedi meg a feladat.)''
ezeket az ellenőrzéseket hogyan lehetne a legegyszerűbb módon elvégezni?
előre is köszönöm a segítségeket
üdv
peterszky -
peterszky
őstag
tegnap vettem egy könyvet ( UNIX/Linux héjprogramozás ) és kezdek megvilágosodni
egy kérdésem lenne:
hogyan lehet megoldani, hogy az inputot két sorban kérjük be?
Egy fájlnál nincs gond, de parancssorban hogy lehet ezt megoldani ( ez dönti el, hogy fekete vagy fehér lesz a sakkbábú )? -
Jester01
veterán
A 7es feladat egyetlen tr parancs, csak fel kell sorolni a leképezéseket.
tr ''abcdef .... xyzABCDEF ... XYZ'' ''nopqr ... klmNOPQR ... KLM''
(illetve ugyanez fordítva)
A 6/3 az bonyolult.
A 6/2 az ellenõrzés nélkül kb. ennyi:
x=$1
val=0
shift
while [ $# -gt 0 ]
do
val=$(( val * x + $1 ))
shift
done
echo $val
A 6/1 kb:
UCEN=$1
CH=${2:-28}
D=266
if jodatum ''$UCEN''
then
if [ $CH -lt 29 ]
then
D=$(( D + CH / 2 ))
else
D=$(( D + (CH*17)/30 ))
fi
date -d ''$UCEN + $D days'' +%Y-%m-%d
else
echo hiba
fi -
Salak
aktív tag
Sziasztok,
Lenne egy nagy kérésem/kérdésem. Egyik haverom megkért,hogy segítsek, mert muszáj lenne átmennie info-bol, de nagyon nem ért hozzá.
Az alábbi linken a 6. órához tartozó házifeladat példáit, illetve a 7. órai házifeladatot kell neki leadnia.
[link]
Nagyon hálás lennék, ha egy-két feladatot legalább segítenétek megoldani, tényleg nagyon fontos lenne. Ja és valami ''putty''-al kell megcsinálni (talán shell nyelven, ha van olyan, sajna én egyáltalán nem értek hozzá)
Előre is köszi! -
PhoenixAngel
csendes tag
Sziasztok!
Azért írok nektek, mert segítségre lenne szükségem! Szerintem Ti tudtok segíteni, s nekem ez elég fontos lenne! Kérlek ha tudtok, akkor segítsetek!
Nos a problémám a következő:
Egy kisebb hálózattal próbálkozom, s elakadtam a következő problémánál! (Linux server - windowsos kliensek)
Van nekem egy adott csoportom, minek neve legyen Phoenix, ami pár gépből, pontosabban pár felhasználóból áll! Mindegyiknek megvan a maga jelszava! Én ennek a csoportnak az összes felhasználójának jelszavát szeretném megváltoztatni egyszerre, pwgen-nel úgy, hogy ne legyenek benne z,y,1,I karakterek! Gondolom ezt for ciklussal lehet megírni, miután kiolvastattam a csoport tagjait a group fájlból! Majd ha megváltoztatta akkor azt írja be smbpasswd-del, valamint chpasswd-del a shadow fáljba! Valamint készítsen egy fájlt amit a csoport mindegyik tagja lát, hogy meg tudják nézni az új kódjukat, s utánna meg tudják változtatni, de azt már ne lássa senki, csak az adott felhasználó! Nem tudom, hogy erre milyen scriptet lehetne írni? Kérlek ha tudtok segíteni ebben, akkor segítsetek! Előre is köszönöm!
Phoenix -
amargo
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 -
Jester01
veterán
válasz
loszerafin #143 üzenetére
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. -
peterszky
őstag
válasz
loszerafin #145 üzenetére
a hozzászólást lehet töröltetni
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] -
loszerafin
senior tag
válasz
loszerafin #144 üzenetére
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.
-
loszerafin
senior tag
válasz
loszerafin #143 üzenetére
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 -
loszerafin
senior tag
válasz
peterszky #142 üzenetére
Í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 * *|
|* * * * | -
peterszky
őstag
válasz
loszerafin #141 üzenetére
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] -
loszerafin
senior tag
válasz
loszerafin #140 üzenetére
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. -
loszerafin
senior tag
válasz
loszerafin #139 üzenetére
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. -
loszerafin
senior tag
válasz
peterszky #138 üzenetére
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. -
peterszky
őstag
válasz
loszerafin #137 üzenetére
lehet, hogy ez egy hülye kérdés lesz
az a leírás nem valami algoritmus szerűség? -
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... -
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. -
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? -
GD
őstag
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 missionmajd még hallotok rólam..
[Szerkesztve] -
GD
őstag
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..
[Szerkesztve] -
Finwe
őstag
Hello!
1x láttam egy xp-t futó shell konzolt, nem tudjátok honnan lehetne letölteni? -
zLegolas
őstag
válasz
zLegolas #117 üzenetére
Ü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] -
Jester01
veterán
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. -
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... -
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? -
ALI_G
veterán
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. -
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!
-
ALI_G
veterán
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.
[Szerkesztve] -
ALI_G
veterán
ment pü.
Új hozzászólás Aktív témák
Hirdetés
- Macron betiltatná az EU-ban a közösségi médiát a 15 év alattiaknak
- Melyik tápegységet vegyem?
- Fejhallgató erősítő és DAC topik
- Linux Mint
- Mibe tegyem a megtakarításaimat?
- OLED TV topic
- Teljesen az AI-ra fókuszál az új AMD Instinct sorozat
- Kazy Computers - Fehérvár - Megbízható?
- Le Mans Ultimate
- Luck Dragon: Asszociációs játék. :)
- További aktív témák...
- Windows, Office licencek kedvező áron, egyenesen a Microsoft-tól - Automata kézbesítés utalással is!
- Microsoft licencek KIVÉTELES ÁRON AZONNAL - UTALÁSSAL IS AUTOMATIKUS KÉZBESÍTÉS - Windows és Office
- Vírusirtó, Antivirus, VPN kulcsok
- Kaspersky, McAfee, Norton, Avast és egyéb vírusírtó licencek a legolcsóbban, egyenesen a gyártóktól!
- Bontatlan - BATTLEFIELD 1 Collectors Edition - Játékszoftver nélkül
- Telefon felvásárlás!! iPhone 16/iPhone 16 Plus/iPhone 16 Pro/iPhone 16 Pro Max
- Azonnali készpénzes Sony Playstation 4 Slim / PS4 Pro felvásárlás személyesen/csomagküldéssel
- Steam, EA, Ubisoft és GoG játékkulcsok, illetve Game Pass kedvező áron, egyenesen a kiadóktól!
- Apple iPhone 14 128GB, Kártyafüggetlen, 1 Év Garanciával
- AKCIÓ! HP USB C G5 Essential (5TW10AA) dokkoló hibátlan működéssel garanciával
Állásajánlatok
Cég: Liszt Ferenc Zeneművészeti Egyetem
Város: Budapest
Cég: CAMERA-PRO Hungary Kft
Város: Budapest