Új hozzászólás Aktív témák
-
stargazer
senior tag
olyat szeretnék kérdezni, hogy mivel tudom szerintetek megoldani, hogy egy txt-ben sok ugyanolyan kifejezés közül törölje ki azokat amik egymás utáni sorokban találhatóak, kivéve azt ami az első sorban van. és csak úgy törölje ki hogy egy tömbként kezelje azokat az egymás után következő sorokat amelyekben ugyanaz a kifejezés megtalálható.
Fegyverben réved fönn a téli ég, kemény a menny és vándor a vidék, halkul a hó, megáll az elmenő, lehellete a lobbant keszkenő...
-
stargazer
senior tag
up
Fegyverben réved fönn a téli ég, kemény a menny és vándor a vidék, halkul a hó, megáll az elmenő, lehellete a lobbant keszkenő...
-
Jester01
veterán
Mutass egy példát!
alma korte dio
mogyoro mak alma
tok dio korte
mak alma szilva
Ehhez 1 kifejezést adsz, ami mondjuk alma.
Akkor a kimenet ez legyen?
alma korte dio
mogyoro mak
tok dio korte
mak alma szilva
Vagyis a második sorból kell törölni az alma-t mert az elsõben is benne voltJester
-
stargazer
senior tag
így lenne:
vannak mondatok
.
.
.
alma körte meggy
cseresznye eper
dió mogyoró (tehát idáig mindenféle szabályszerűség nélkül vegyesen mindenféle kifejezés)
alma eper (innentöl viszont pár soron keresztül minden sorban szerepel az alma kifejezés...)
alma dió
alma körte
alma meggy (...egész idáig)
cseresznye dió (innentöl megint vegyesen mindenféle...)
.
.
.
alma körte meggy
cseresznye eper
dió mogyoró (...idáig)
alma eper (innentöl megint pár soron keresztül minden sorban szerepel az alma...)
alma dió
alma körte
alma meggy (...idáig)
cseresznye dió (innentöl megint vegyesen mindenféle)
.
.
.
namost a cél az lenne hogy ugy cserélni az alma kifejezést, hogy így alakuljon a szöveg:
.
.
.
alma körte meggy
cseresznye eper
dió mogyoró
alma eper
<csereszó> dió
<csereszó> körte
<csereszó> meggy
cseresznye dió
.
.
.
alma körte meggy
cseresznye eper
dió mogyoró
alma eper
<csereszó> dió
<csereszó> körte
<csereszó> meggy
cseresznye dió
.
.
.
tehát az a cél, hogy keresse meg, hogy melyik kifejezés található meg egymás utáni sorokban, és azokat ugy cserélgesse ki a csereszóra, hogy az első sort ''egy tömbön belül'' ne piszkálja.
jól látszik a példában és fontos, hogy amikor másodszor is előkerült az ismétlődés a szöveg egy későbbi részében, ott az első sorban nem szabad hogy cserére kerüljön sor.Fegyverben réved fönn a téli ég, kemény a menny és vándor a vidék, halkul a hó, megáll az elmenő, lehellete a lobbant keszkenő...
-
Jester01
veterán
A következõ kis awk script 1 mintára azt hiszem megcsinálja amit szeretnél:
/alma/ {
if (alma) gsub(/alma/, ''csereszo''); else alma=1;
print; next; }
{ alma=0; print; }Jester
-
stargazer
senior tag
több kifejezés is lenne, és ismeretlenek... tehát én nem tudom előre hogy melyik szavak fognak ismétlődni.
tehát valahogy úgy kéne, hogy vizsgálja meg ő maga hogy mely szavak ismétlődnekFegyverben réved fönn a téli ég, kemény a menny és vándor a vidék, halkul a hó, megáll az elmenő, lehellete a lobbant keszkenő...
-
stargazer
senior tag
és ez az awk script lefut xp alatt is? kell hozzá valami? ha igen, mi?
Fegyverben réved fönn a téli ég, kemény a menny és vándor a vidék, halkul a hó, megáll az elmenő, lehellete a lobbant keszkenő...
-
stargazer
senior tag
igen.
bakker! most jöttem rá hogy ez nem is olyan könnyű mint ahogy én azt elsőre gondoltam.
igazábol a szöveg végétől kell elindulni visszafelé ahhoz hogy úgy lehessen kicserélni az ugyanolyan szavakat egy tömbön belül, hogy az első sorban lévőt ne bántsa!Fegyverben réved fönn a téli ég, kemény a menny és vándor a vidék, halkul a hó, megáll az elmenő, lehellete a lobbant keszkenő...
-
Jester01
veterán
válasz stargazer #13 üzenetére
Dehogy is, úgy pont nem tudod melyiket kell békénhagyni...
Na akkor specifikáljuk a feladatot. Bemenetként megadsz egy csereszót. A szövegben a sorokat szavakra bontva azon szavakat kicseréljuk a csereszóra, amelyek az elõzõ sorban is benne voltak.
Ezt kell csinálni?Jester
-
stargazer
senior tag
-
stargazer
senior tag
feltétlenül ismerni kell az ismétlődő szavakat? nem létezik olyanmódszer ami karakterláncokat képes összeegyeztetni? mittudomén megnézni az első karaktert. ha stimmel továbbugrik egyet, ha az is stimmel, akkor... ja ez nem is jó mert akkor esetleg előfordulhat hogy nem teljes kifejezéseket fog cserélni hanem azok egy részét csupán.
annyit tudok esetleg tenni hogy a kifejezések mindig nagy A-val és nagy B-vel kezdődjenek. fontos lehet, hogy minden mondatban mindig csak 2 kifejezés található.
.
.
.
AalmaBkörte
AcseresznyeBeper
AdióBmogyoró (tehát idáig mindenféle szabályszerűség nélkül vegyesen mindenféle kifejezés)
AalmaBeper (innentöl viszont pár soron keresztül minden sorban szerepel az alma kifejezés...)
AalmaBdió
AalmaBkörte
AalmaBmeggy (...egész idáig)
AcseresznyeBdió (innentöl megint vegyesen mindenféle...)
.
.
.
AalmaBkörte
AcseresznyeBeper
AdióBmogyoró (...idáig)
AalmaBeper (innentöl megint pár soron keresztül minden sorban szerepel az alma...)
AalmaBdió
AalmaBkörte
AalmaBmeggy (...idáig)
AcseresznyeBdió (innentöl megint vegyesen mindenféle)
.
.
.Fegyverben réved fönn a téli ég, kemény a menny és vándor a vidék, halkul a hó, megáll az elmenő, lehellete a lobbant keszkenő...
-
Jester01
veterán
válasz stargazer #21 üzenetére
BEGIN { FS=''[AB]''; }
{
delete newwords;
for(i=2; i<=NF; i++)
{
newwords[$i]=1;
if ($i in prevwords) { $i=''csereszo''; }
}
delete prevwords;
for(w in newwords) { prevwords[w]=1; }
print ''A'' $2 ''B'' $3;
}
Futási eredmény (be -> ki):
AalmaBkörte -> AalmaBkörte
AcseresznyeBeper -> AcseresznyeBeper
AdióBmogyoró -> AdióBmogyoró
AalmaBeper -> AalmaBeper
AalmaBdió -> AcsereszoBdió
AalmaBkörte -> AcsereszoBkörte
AalmaBmeggy -> AcsereszoBmeggy
AcseresznyeBmeggy -> AcseresznyeBcsereszo
AalmaBkörte -> AalmaBkörte
AcseresznyeBeper -> AcseresznyeBeper
AdióBmogyoró -> AdióBmogyoró
AalmaBeper -> AalmaBeper
AdióBalma -> AdióBcsereszo
AalmaBkörte -> AcsereszoBkörte
AalmaBmeggy -> AcsereszoBmeggy
AcseresznyeBdió -> AcseresznyeBdióJester
-
stargazer
senior tag
ez fasza, csak amikor másodszor is elkezd ismétlődni az alma akkor annak az első sorában is kicserélődött.
AdióBalma -> AdióBcsereszo
AalmaBkörte -> AcsereszoBkörte
AalmaBmeggy -> AcsereszoBmeggy
AcseresznyeBdió -> AcseresznyeBdióFegyverben réved fönn a téli ég, kemény a menny és vándor a vidék, halkul a hó, megáll az elmenő, lehellete a lobbant keszkenő...
-
Jester01
veterán
válasz stargazer #23 üzenetére
Vesszek meg, de nem látom. Most az utolsó 4 sort idézted be, nem? A közvetlenül elõtte lévõ sorban (amit nem idéztél) pedig ott van az alma és nem lett kicserélve.
MOD: vagy az a baj, hogy az idézett rész elsõ sorában az alma a második szó és nem az elsõ? Azt nem mondtad, hogy a pozició is számít...
[Szerkesztve]Jester
-
stargazer
senior tag
-
-
Jester01
veterán
válasz stargazer #32 üzenetére
BEGIN { FS=''[AB]''; }
{
delete newwords;
swap=0;
for(i=2; i<=NF; i++)
{
newwords[$i]=1;
if ($i in prevwords) { $i=''csereszo''; swap=1; }
}
delete prevwords;
for(w in newwords) { prevwords[w]=1; }
if (swap)
{
print $2 ''B'' $3;
} else {
print;
}
}
A linken is frissítettem. Ez most kitörli a sor elejéról az A-t ha csere van, de a B marad. Azok a sorok amelyekben nem vol csere változatlan formában kerülnek kiírásra.Jester
-
stargazer
senior tag
ki fogsz nyírni.
és ez arra is működik ha nem az A után hanem a B után vannak ugyanolyan kifejezések? és akkor azokat is cseréli miközben törli a B-ket a kif. elejéről? mert akkor tökéletes lenneFegyverben réved fönn a téli ég, kemény a menny és vándor a vidék, halkul a hó, megáll az elmenő, lehellete a lobbant keszkenő...
-
Jester01
veterán
válasz stargazer #34 üzenetére
ki fogsz nyírni.
Az tuti
Na szóval:
AalmaBkorte - (nincs csere) -> AalmaBkorte
AalmaBkorte - (alma csere) -> csereszoBkorte
AalmaBkorte - (korte csere) -> Aalmacsereszo
Ez kell?
MOD: ha egy AalmaBkorte sor utan van egy AkorteBalma akkor mit kell csinálni? Most ebben az esetben mind a kettõt cserélem (hiszen szerepeltek az elõzõ sorban) és akkor az új rendszer szerint csereszocsereszo lesz a kimenet.
[Szerkesztve]Jester
-
stargazer
senior tag
Na szóval:
AalmaBkorte - (alma nemcseremertelsőszó) -> AalmaBkorte
AdioBkorte - (dio csere) -> Adiocsereszo
AmogyoroBkorte - (mogyoro csere) -> Aalmacsereszo
így gondoltamFegyverben réved fönn a téli ég, kemény a menny és vándor a vidék, halkul a hó, megáll az elmenő, lehellete a lobbant keszkenő...
-
stargazer
senior tag
kinek adtam volna meg? nem kérdezte senki. nem mondta senki. aszittem így ahogy van menni fog mert beépül a shellbe as an internal or external program.
milyen path-ba rakjam be?Fegyverben réved fönn a téli ég, kemény a menny és vándor a vidék, halkul a hó, megáll az elmenő, lehellete a lobbant keszkenő...
-
stargazer
senior tag
cannot open out.txt no such file or directory
ha csinálok akkor lefut no problemo csak nem történik semmi, tehát nem jön létre az uj file illetve nem írja bele a változásokat.
nagyon fasza a végkimenetel különben amit láttam csak még annyit kéne tenni vele, hogy azokat a kifejezéseket amik még egyébként megtalálhatóak a szövegben de nincs előttük sem A sem B azokat ugyanúgy tegye bele a kimenti file-ba anélkül hogy hozzájuk nyúlna.Fegyverben réved fönn a téli ég, kemény a menny és vándor a vidék, halkul a hó, megáll az elmenő, lehellete a lobbant keszkenő...
-
-
Jester01
veterán
-
Jester01
veterán
Én most eltûntem a hétvégére, folyt. köv.
Jester
-
Új hozzászólás Aktív témák
- Eredeti Microsoft termékek - MEGA Akciók! Windows, Office Pro Plus, Project Pro, Visio Pro stb.
- PC JÁTÉKOK (OLCSÓ STEAM, EA , UPLAY KULCSOK ÉS SOKMINDEN MÁS IS 100% GARANCIA )
- AKCIÓ! - STEAM kulcsok / Punch Club, Oddworld: Soulstorm, Children of Morta, stb. - 2024.05.16.
- Bitdefender Total Security 3év/3eszköz! - "Tökéletes védelem most kedvező áron..."
- Windows, Office licencek a legolcsóbban, egyenesen a Microsoft-tól - 2990 Ft-tól!
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Alpha Laptopszerviz Kft.
Város: Pécs