- A hozzászóláshoz be kell jelentkezni
Hozzászólások
Jópofa. :)
--
"Sose a gép a hülye."
- A hozzászóláshoz be kell jelentkezni
Ezen elbuktam: https://cmdchallenge.com/#/print_number_sequence
Szerintem 3 jó megoldást is adtam, de nem lép tovább. Vagy az IQ teszten buktam el, és nem értem a feladatot.
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni
echo {1..100}
(szerk.: rejtett subscribe volt, meg egy szvsz. még egyszerűbb megoldás)
BlackY
--
"en is amikor bejovok dolgozni, nem egy pc-t [..] kapcsolok be, hanem a mainframe-et..." (sj)
- A hozzászóláshoz be kell jelentkezni
Na a "-s"-t nem ismertem, és úgy működik is. A "seq 1 100 | tr '\n' ' '" ugyanazt adja, és az nem ment.
- A hozzászóláshoz be kell jelentkezni
Mert a végére is teszel egy szóköz karaktert...
- A hozzászóláshoz be kell jelentkezni
Jé, tényleg!
Ez is ugyanazt csinálja, és ez is ugyanazért nem működött:
for i in {1..100}; do echo $i; done | tr '\n' ' '
Köszi!
- A hozzászóláshoz be kell jelentkezni
Mondjuk a -s opciót én sem ismertem, de így lehet egyszerűsíteni:
seq -s " " 100
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni
ha nem ismered az opciot, meg mindig csinalhatod igy: echo $(seq 1 100)
- A hozzászóláshoz be kell jelentkezni
hibát én is találtam benne, pl volt hogy a
find -type f
nem minden file-ra meccselt...
--
zrubi.hu
- A hozzászóláshoz be kell jelentkezni
azok symlinkek voltak :)
- A hozzászóláshoz be kell jelentkezni
ohh :)
--
zrubi.hu
- A hozzászóláshoz be kell jelentkezni
Kár, hogy megmutatja a megoldást.
--
zrubi.hu
- A hozzászóláshoz be kell jelentkezni
jó móka volt :)
-------------------------------------------------------------------------------
Az életben csak egy dolog a szép, de az épp nem jut eszembe.
Slackware Linux 14.2 | 4.4.37-janos
- A hozzászóláshoz be kell jelentkezni
Egy darabig csináltam, s arra jöttem rá, ideje volna megtanulnom a find parancs használatát. Meg lehet kerülni a shell eszközeivel, de jó volna érteni hozzá, mert lényegesen egyszerűsíti az életet.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
find és xargs. A find-nak van '-exec' kapcsolója, ami elvileg ugyanazt csinálja, mint az xargs, de sok fájlnál az xargs lényegesen gyorsabb.
- A hozzászóláshoz be kell jelentkezni
A xargs-ot legalább minimálisan, a legalapabb esetben tudom használni, de a find-ot még úgy sem. Mindig azon kapom magam, inkább írok ciklust, process helyettesítéssel vagy pipe-ból átadok neki egy listát, meg effélék. Holott az egész egyetlen parancsból megoldható lenne.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
Jaj. Nincs benne openssl, akkor vajon hogy döntsem el, hogy egy szám <törölt szövegrész>-e?
Szerk: na, kész, mára kellemesen elfáradtam, ahogy a TV-tornában mondták;)
- A hozzászóláshoz be kell jelentkezni
Én írtam rá egy rövid scriptet (megkeresi a szám gyökét, 2-től egy ciklus elmegy a gyökig, ha a szám modolo cikl. vált == 0, akkor nem prím), de nem fogadta el, pedig ua volt az eredmény, mint a factor használatával. Amúgy több esetben is volt olyan, hogy az eredmény ua lett, mint a megoldásoknál, de valamiért nem fogadta el.
- A hozzászóláshoz be kell jelentkezni
Igen, volt, ahol a helyes eredmény 3 volt - talán file-okat kellett megszámolni -, beírtam, hogy echo 3, de nem fogadta el. :)
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
Szóval van ilyen program is, hogy 'factor'... Jó tudni, köszi!
Szerk: és méghozzá nem is a haszontalan-bizbazok csomag része ez a factor, hanem a coreutils-é!
- A hozzászóláshoz be kell jelentkezni
Nahát, még neked is lehet újat mondani? ;)
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
A másik újdonság a column
parancs volt, ami a bsdmainutils része :)
- A hozzászóláshoz be kell jelentkezni
Ezt meg én nem ismertem. Linuxon a util-linux csomagban van.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
Linuxon a util-linux csomagban van.
Hátőőő...
$ dpkg -S `which column`
bsdmainutils: /usr/bin/column
$ dpkg -L util-linux | grep column
$
:)
- A hozzászóláshoz be kell jelentkezni
rpm -qf `which column`
util-linux-2.30.1-1.fc26.x86_64
cat /etc/system-release
Fedora release 26 (Twenty Six)
;)
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
Dehát' Linuxról volt szó... :)
(csak hülyéskedek, nehogy komolyan vedd... :))
- A hozzászóláshoz be kell jelentkezni
Köszi, ez nekem is újdonság, azt a feladatot egyedi printf-fel oldottam meg.
- A hozzászóláshoz be kell jelentkezni
Azt hittem, tényleg CMD challenge, de ez shell scripting... :(
Időm lenne, megcsinálnám CMD.EXE-re. Ott aztán vannak vicces megoldások és szintaktikák... :)
Üdv,
Marci
- A hozzászóláshoz be kell jelentkezni
ez kb. olyan lehet, mint kamaszutra poziciokat reklamozni a 70 feletti korosztalynak. Nem mondom, van meg ott is elet, csak hat az a celkozonseg mar egy kisse kisebb...
--
t-systems-es it architect allast keres. Jelige: csak webshopot ne kelljen...
- A hozzászóláshoz be kell jelentkezni
LOL
Na, az a sajtreszelővel való próbálkozáshoz lehet hasonló élmény.
Sok sikert ;)
Még nosztalgiának is durva. Maga a gondolat is.
--
zrubi.hu
- A hozzászóláshoz be kell jelentkezni
monjuk perl van benne, megkérhetnéd őket, hogy dobjanak bele egy powershellt is :D
- A hozzászóláshoz be kell jelentkezni
Én 3 perc alatt felhúztam magam rajta, hogy "szép" megoldást nem fogadott el / nem is értette mit akarok, de olyat ami meg tipikus bad practice simán megevett.
Aki ezt csinálta, addig ütném, ameddig lélegzik! :P
- A hozzászóláshoz be kell jelentkezni
Két tipikus példa a fentiekre, amiért ütném a szerzőt, amíg mozog:
#1: listázd ki a _fájlokat_ (soronként 1-et) szerepelt a feladatban. Nosza, reflexből find -type f
Nem jó!
de bezzeg az ls -1-et megette.
Saját magának önellentmond! Az ls -1, nem csak a fájlokat listázza ki.
#2: listáz ki az összes fájlt, amiben előfordul az "500" string.
Első megoldás:
grep -rl 500 .
Nem eszi meg.
Bezzeg a grep -l 500 *-ot igen.
Aki a shell expansion-t használja ilyen feladatra, az nagyobb aljasságokat is képes elkövetni!
- A hozzászóláshoz be kell jelentkezni
Aki a shell expansion-t használja ilyen feladatra, az nagyobb aljasságokat is képes elkövetni!
Eddig azt hittem, az azért van, hogy használjam. ;)
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
Az expansion, csak egy buta behelyettesites.
Nem ez az a celterulet, ahol hivatott hasznalni.
Ha ilyenre hasznalod, akkor gondold ujra, hogy hany helyen mehet felre egy scripted fals feltetelezesek miatt.
- A hozzászóláshoz be kell jelentkezni
Ezek szerint rossz a holmi működési elve.
Úgy lenne csak értelme, hogy random adaton futtatja sandboxban és az outputot hasonlítja össze az általa futtatott megoldáséval.
Üdv,
Marci
- A hozzászóláshoz be kell jelentkezni
Igen. Tehát amikor a file-okat meg kell számolni, és 3 a helyes eredmény, akkor az echo 3 egy helyes megoldás. :))
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
Szerintem működhet, ha egy/(vagy több) olyan könyvtáron is teszteljük a parancsot, amit felhasználó nem lát. Nem?
- A hozzászóláshoz be kell jelentkezni
Nem kell előre megmutatni az aktuális tesztadatokat.
Üdv,
Marci
- A hozzászóláshoz be kell jelentkezni
No igen, de kiadhatsz bármilyen parancsot. Egy ls -a után nem volt nehéz dolgom. :) Nyilván meg tudom számolni a file-okat, de kíváncsiságból beírtam bedrótozotta, s innen jöttem rá, hogy nem csak az eredményt nézi.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
Mire mész az egyik futtatás tesztadatával a másik tesztadattal történő másik futtatásnál?
Üdv,
Marci
- A hozzászóláshoz be kell jelentkezni
Arra gondolsz, hogy minden egyes alkalommal random generál tesztadatot? Mert akkor semmire. :)
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
Arra.
Üdv,
Marci
- A hozzászóláshoz be kell jelentkezni
Azt csinálja (néha még irja is, higy random adattal nem volt jó) , csak nem mindig van összhangban a feladat kiírása azzal, amit valóban ellenőriz.
Ill a def része a példa adat.
- A hozzászóláshoz be kell jelentkezni
+1
Igen, annak lenne ertelme, sott...
Minden szempontbol ertelmesebb lenne!
- A hozzászóláshoz be kell jelentkezni
Gyu!
Az elsővel nincs igazad.
In UNIX everything is a FILE.
(Arról már nem is beszélve, hogy összekevered a file-t az ordinary file-lal :-) )
=====
tl;dr
Egy-két mondatban leírnátok, hogy lehet ellopni egy bitcoin-t?
- A hozzászóláshoz be kell jelentkezni
Attol meg nem jo practice-t ls-t hasznalni olyan muveletre, ami igazibol egy sima echo is lehetne.
Masreszt open()-el pl. nem tudsz dir-t megnyitni, ha jol remlik. Szoval a dir megse annyira file. (socke-t, pipe-ot, device nodeokat meg tudsz :P A symlinket meg szandekosan nem emlitem)
Marpedig a * -ban azok is benne lesznek.
Szoval a legnagyobb bajom: shell-ben a *-ot, pl. for ciklusan erdemes hasznalni, ahol iteralni akarsz a listan.
De egy listazo programnak odaadni elore a listat, amit kerek vissza. Ertelmetlen szerintem. Foleg ugy, hogy a listazo program (ls) nincs is igazibol listazasra hasznalva, mert nem -l vagy mas parameterekkel van hivva, hogy extra infot adjon vissza a fajlokrol.
Visszaadja ugyanazt, amit beadtunk neki.
Max meggyozodik rola, hogy azok tenylegesen letezo direntry-k. Ami meg megint ertelmetlen, hiszen a glob is ezt csinalja: visszaadja a ra matchelo direntry-ket.
Az ilyen for i in `ls *`; do whatever ; done megoldasokert szemely szerint.
Lehet, hogy nincs igazam. De szemely szerint en kerulom meg az olyat is, akinek a kodjaban ilyet latok.
Hacsak nincs ra valami extra remek magyarazata, mint pl. hogy fiatal volt, masnapos es kellett a penz...
- A hozzászóláshoz be kell jelentkezni
`ls *`
Ez a * hosszú írásmódja? :)
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
Szerintem az open() még müxik könyvtárakra.
- A hozzászóláshoz be kell jelentkezni
Azzal egyetértek, hogy nem jó gyakorlat.
Ja, man 2 open (nyilván FreeBSD-n) részletek a hibakódok környékéről:
[EOPNOTSUPP] An attempt was made to open a socket (not currently implemented).
[ENOTDIR] O_DIRECTORY is specified and the file is not a directory.
Szóval socketet nem lehet open-nel nyitni, dir-t meg igen :-) - de ettől még a local-domain (lánykori nevén: UNIX-domain) socketet a jobbak (mármint én ;-) ) fel szokták sorolni a 7-féle fájltipus felsorolásakor (mármint UNIX/Linux alaptanfolyamon). Úgyismint:
közönséges fájl (ordinary file)
könyvtár / mappa (directory)
szimbolikus link (symlink)
pipe
socket
chardev
blockdev
Szóval csak hogy magyarázzam a bizonyítványomat: amit írtál, az gyakorlati szempontból helytálló, csak volt benne egy tárgyilagosan nézve hiba.
=====
tl;dr
Egy-két mondatban leírnátok, hogy lehet ellopni egy bitcoin-t?
- A hozzászóláshoz be kell jelentkezni
Masreszt open()-el pl. nem tudsz dir-t megnyitni, ha jol remlik.
Rosszul remlik. Meg tudsz nyitni, csak ismerni kell a szukseges kapcsolokat ...
Szoval a legnagyobb bajom: shell-ben a *-ot, pl. for ciklusan erdemes hasznalni, ahol iteralni akarsz a listan.
De egy listazo programnak odaadni elore a listat, amit kerek vissza. Ertelmetlen szerintem. Foleg ugy, hogy a listazo program (ls) nincs is igazibol listazasra hasznalva, mert nem -l vagy mas parameterekkel van hivva, hogy extra infot adjon vissza a fajlokrol.
Visszaadja ugyanazt, amit beadtunk neki.
Nem. Visszaadja azt, amit talalt abbol, amit mi beadtunk neki.
Max meggyozodik rola, hogy azok tenylegesen letezo direntry-k.
Es itt az extra info, amit fentebb hianyoltal.
Ami meg megint ertelmetlen, hiszen a glob is ezt csinalja: visszaadja a ra matchelo direntry-ket.
Nem, nem ezt csinalja. Visszaadja, amit talalt, ill. szepen visszatolja az arcodba azt, amit beadtal neki, ha nem talalt semmit. Tehat, ha azt szeretned itt mondani, hogy az 'ls *' es az 'echo *', vagy legyen inkabb 'for f in *; do echo $f; done' ugyanazt az eredmenyt szallitja, hat akkor megint tevedsz sajnos. Az elso esetben ugyanis kapsz egy uzenetet es egy definialt hibakodot, ha nincs talalat, a masodik esetben viszont csak egy csillagot a szemeid koze ;)
Tegyuk itt persze rogton hozza, hogy mindket megoldas ebben a formaban erosen kerdojeles, ha az ember megbizhato szkriptet akar irni, pusztan a mondandodat kivantam kommentalni ;) Szinten meg kell jegyezni, hogy a glob hasznalata pl. a compgen-nel parositva hibakezelesre alkalmasabba teheto, tehat azt altalam irtakban meg veletlenul sem kell az 'egyetlen igaz megoldas' utan kutatni, nem lesz meg, es nincs is ilyen ;) De azert egy tipp: 'man find'.
- A hozzászóláshoz be kell jelentkezni