- Luck Dragon: Asszociációs játék. :)
- sziku69: Fűzzük össze a szavakat :)
- MasterDeeJay: Noname 1TB-os SATA SSD teszt
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- eBay-es kütyük kis pénzért
- Négymagos Xeon(!) CPU LGA775-ös deszkában
- bambano: Bambanő háza tája
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- erkxt: A Roidmi becsődölt – és senki nem szól egy szót sem?
- hcl: Kelj fel komám, ne aludjál
Ú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
Új hozzászólás Aktív témák
- iPhone topik
- Feketehalálra váltja a kékhalált a Microsoft
- Miskolc és környéke adok-veszek-beszélgetek
- Autós topik
- Eredeti játékok OFF topik
- Xiaomi 15 - kicsi telefon nagy energiával
- Vezeték nélküli fülhallgatók
- Friss koncepciót hoz a Nothing Phone (3)
- Kormányok / autós szimulátorok topikja
- Vezetékes FEJhallgatók
- További aktív témák...
- Antivírus szoftverek, VPN
- Kaspersky, McAfee, Norton, Avast és egyéb vírusírtó licencek a legolcsóbban, egyenesen a gyártóktól!
- Eladó steam/ubisoft/EA/stb. kulcsok Bank/Revolut/Wise (EUR, USD, crypto OK)
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! Automatikus 0-24
- Adobe Előfizetések - Adobe Creative Cloud All Apps - 12 Hónap - NYÁRI AKCIÓ!
- Macbook White 13" unibody
- LG 48C4 - 48" OLED evo - 4K 144Hz - 0.1ms - NVIDIA G-Sync - FreeSync - HDMI 2.1 - A9 Gen7 CPU
- Gombászkönyvek egyben
- Telefon felvásárlás!! Samsung Galaxy A12/Samsung Galaxy A22/Samsung Galaxy A32/Samsung Galaxy A52
- AKCÓÓÓ!!! Panasonic CF-XZ6 AIO all-in-one laptop tablet 2k touch i5-7300u speciális ütésálló
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft
Város: Budapest