WinFuture-Forum.de: Ist es möglich hierzu einen Skript zu schreiben? - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Linux
Seite 1 von 1

Ist es möglich hierzu einen Skript zu schreiben?

#1 Mitglied ist offline   mezo 

  • Gruppe: aktive Mitglieder
  • Beiträge: 207
  • Beigetreten: 04. Juli 09
  • Reputation: 1

geschrieben 09. Juli 2014 - 14:44

Hallo,
ich habe ein mehr oder weniger Komplexes Problem.

Wir sind eine Quake 2 Jump Community, wofür ich einen Server betreibe. Die Mod hat aber leider ein Problem und zwar berechnet sie die Anzahl der Maps falsch.

Hier ein Beispiel: Spieler A hat 10 Maps completed, entferne ich eine Zeit oder eine Map, wird diese nicht abgezogen und er hat immer noch diese Map in seiner Score, was dazu führt, dass die Score falsch berechnet wird.

Das ganze könnte man nun über die User File editieren, was aber eine ganze menge Arbeit wäre.

Die User File sieht wie folgt aus:
Angehängte Datei  Neues Textdokument.txt (41,65K)
Anzahl der Downloads: 149

Wie man sieht besteht jeder User aus:
0 0 0 0 0 0 0 0 0 zYc0

Wobei hier nur die 2. Zahl interessant ist, denn diese steht eben für die completed Maps.

Nun gibt es für jeden User eine File, die genau die Richtige Anzahl der Maps beinhaltet und diese File hat den Namen der 1. Zahl und sieht wie folgt aus:
 0wnz 132tree 1jumpmap 2_race_r3 2towers 4c3jump1 4c3jump2 4c3jump3 4mybros 5secmap _fmj_a _jumplava _madjumping10 ac1_jump2 ac1_jump3 ac1_jump4 ac1_jump5 ac1_race1 adrenjump2 adrenjumps10 adrenjumps11 adrenjumps13 adrenjumps14 adrenjumps17 adrenjumps6 adrenjumps7 adrenjumps9 adrqj3 aj2 ajm ajumpb akumamap2a akumamap3 akumanoob1 akumanoob3b akumanoob4 aljump10 aljump11 aljump12 aljump15 aljump16 aljump17 aljump20 aljump21 aljump22 aljump24 aljump26 aljump3 aljump4 aljump5 aljumpjj aljumpjjstrafe aljumpnewb aljumpnoob3 alt1 alt19 alt2 ancientgouki ancientgouki2 ancientgouki3 ancientgouki4 ancientgouki5 ancientgouki5b ancientgouki6 anijump2 anime1 anime11 anime12 anime2 anime5 anime6 anime7 aodjump1 aodjump2 apkisjump2 apocalypse17 apocalypse18 apocalypse21 apocalypse3 apocalypse30 apocalypse31 apocalypse32 apocalypse33 apocalypse4 apocalypse40 apocalypse41 apocalypse43 apocalypse44 apocalypse45 apocalypse47 apocalypse48 apocalypse5 apocalypse50 apocalypse55 apocalypse60 arenacross1 ariejump1 ariejump10 ariejump12 ariejump13 ariejump16 ariejump18 ariejump19 ariejump2 ariejump20 ariejump22 ariejump23 ariejump25 ariejump27 ariejump28 ariejump29 ariejump30 ariejump34 ariejump35 ariejump36 ariejump37 ariejump38 ariejump4 ariejump40 ariejump41 ariejump42 ariejump45 ariejump52 ariejump53 ariejump56 ariejump9 art articjump22 articjumping5 articjumping_3 atr_jump3 atr_kjump atr_kjump1 atr_kjump10 atr_kjump11 atr_kjump2 atr_kjump4 atr_kjump5 atr_kjump6 atr_kjump9 baldyjump bas1cjump beachjumping bja bjump bkjump2 bkjump4 bkjump5 bkjump6 bkjump7 bkjump8 blastjump blastjump1 blastjump2 bleh1 bleh3 bleh4 bljp bloodjumps bloodjumps2 bloodjumps3 bluehardjumps2 bluehardjumps3 bluejumps1 brudny1o1 bubjump2 bubrun bubspeed1 burn byxjumpin2 c1jumps1 c1jumps10 c1jumps11a c1jumps14 c1jumps21 c1jumps24 c1jumps3 c1jumps4 c1jumps6 c1jumps7 c1speed24 carmjumpz1 carmjumpz3 carmjumpz7 carmjumpz8 carnage_jumps1 carnage_jumps3 carnage_jumps5 carnage_jumps8 carnage_jumps9 castrocross castrocrosseat castroeat castroeat2 castroeat4 castroeat7 castrojump1 castrorace castrorace2 cat2 catmap1 catmap2 cautionjumpz1 check9b chooj_jump5 chooj_jump8 chooj_jump9 chooj_jumps1 chooj_jumps2 cityjump1 cja cjmp1 cjmps3 ckjump2 cliffhanger clipzratrace2 cnslong coantartic1 corejumps2 crazy5 crazy8 cuda_j1 d3ljump1 d3ljump3a d3ljump4 d3m0n_njump dafire1 dan_race ddjump1 ddjump10 ddjump11 ddjump12 ddjump2a ddjump3 ddjump4 ddrace death_jump01_easy decerjump1 decerjump2a decerjump3 decerjump4 decerjump5 decerjump6 decino2box decinojump10 decinojump11 decinojump13 decinojump14 decinojump16 decinojump17 decinojump3 decinojump4 decinojump7 decinojump8 decinojump9 demojump1 demon_cj demonjump desjump2e devilc dijump1 direkjumps4 domination dope2 dope3 drdm4 dukeysjump1 dungeon dxjump2 easymap ecljump1 ecljump10 ecljump11 ecllv2 edit1 edvinjump edvinjump5 edvinjump6 egjump1 egyptrace1 egyptrace3 ejump3 eminencejump enver1 enver3 esjumps3 etwjump1 etwjump3b exjump1 ezz_tj_1_v2 falling fastjump01 fastjump02a fastjump03a fastjump04a fastneasy fastneasy1 fastneasy3 fcojump1 fdmjump fearjumps2 fearjumps6 fearjumps7 floppy_gibbon forcejump forkjumping fragjump2 fragjumpt freezejump frogsjumps funjump5 funjump6 funjumping1 g_jump1 g_jump2 gaborjump1 gaborjump2 gay1 gay10 gay11 gay13 gay14 gay2 gay4 gay8 gay9 ghost_race gibbonjump01 gibbonjump02b gj1 gj2 gj3 glockobj godsquickiebeta gonadz gouki1 gouki2 goukimaze goukimaze2 goukimaze3 goukispeed1 gq1a gr_lava grrooms gunnajump1 gxjump2 gxjump4 h4ppyjump1a h4ppyjump2 h4ppyjump3 h4ppyjump4 h4ppyjump5 h4ppyjump7 h4ppyjump8a h4z3s_tryout_map hahn1 hauntedrace hawk1 hawkjmp2 hbjmp1 hbjmp2000 hbjmp2005 hellfire_10 hellfire_17 hellfire_19 hellfire_2 hellfire_21 hellfire_26 hellfire_28 hellfire_29 hellfire_3 hellfire_30 hellfire_32 hellfire_37 hellfire_38 hellfire_41 hellfire_42 hellfire_52 hellfire_57 hellfire_61 hellfire_62 hellfire_63 hellfire_64 hellfire_68 hellfire_7 hellfire_8 hellfire_9 hilly hitjumps hitjumps2 hitjumps3 hmap1 icejump1 icemap2 icex_jump icy_jump5 ijump1h ijumptest4 ijumptest5 ijumpz3 inthedark j_rbjump1 j_rbjump2 j_rbjump3 jasonjumps2 jasonjumps4 jayjump1 jbtujump10 jbtujump2 jbtujump8 jbtujumpin1 jcspec jd1 jeebzjump1 jeebzjump2 jewish-jumps jfp jiggajump1 jiggajump3c jiggajump5 jjump1 jjump2 jjump4 jkid-jmp3 jojump jojump11 jojump12 jojump14 jojump17 jojump19 jojump2 jojump20 jojump22 jojump3 jojump6 jojump7 jojump8 jojump9 jq_jumps jump jump1 jump2thesky jump_a jumpdm1 jumpeasy1 jumpeasy2 jumph1gh jumph1ghle jumphard2 jumphard4 jumphard5 jumphard8 jumpish jumpish11 jumpish12 jumpish13 jumpish14 jumpish16 jumpish17 jumpish18 jumpish19 jumpish21 jumpish23 jumpish25 jumpish26 jumpish28 jumpish29 jumpish33 jumpish37 jumpish4 jumpish41 jumpish42 jumpish5 jumpish6 jumpish7 jumpish8 jumpjail2 jumplava2 jumprail1 jumprail2 jumprail3 jumps_clan1b jumps_clan_map jumps_tryout jumps_tryouts jumpwar11 jumpwar12 jumpwar2 jumpwar24 jumpwar3 jumpwar4 jumpwar9 jyx1 kcjump1 keke5 keke9 khainejumps3 khainejumps6 khainejumps7 khanjump3 kldsjump1 kldsjump2a konopa2 konopa3 kurzjump3 l33tjump1 l33tjump4a l33tjump5 lasjumps2 lavacave lazyjump2_test1 lcraft ldjump3 ldjump4 ldmjmp1 lilredsarcticjumps lilredsjumpz lilredsnewbjumpz ljump1 loljumpin lucijump1 lucijump10 lucijump11 lucijump12 lucijump13 lucijump3 lucijump5a lucijump6a lucimap4 lvl1 m-whoajumps1 madcnt madjumpin madjumping3 madjumping4 madjumping6 mario masjump1 masterjumps1 mazemania mazzjumps mazzjumps2 mf_jump1 mf_jump2 midnight minijump miscjmpz2a moomap1 moomap14 mulejumps1 mulejumps3 mulemap11 mulemap14 mulemap18 mulemap19 mulemap21 mulemap23 mulemap4 mulemap5 mulemap7 mulemap8 ned25-jump neox2 neox3 neox6 neox9 neox_2_01 neox_2_06 nephi1 nephi2 nephi3 nephi5 nephi6 neur0jumps3 newbjumpin2 newbjumps newbsjump newdm17 ngqjmp3 njump1l33t njump2 njump2l33t nojump1 nojump2 noname nookieclipz novajump3 novajump4 novajump6 opjump1beta phxjump11 phxjump14 phxjump16 phxjump18 phxjump19 phxjump22 phxjump23 phxjump26 phxjump27 phxjump28 phxjump2a phxjump3 phxjump33 phxjump39 phxjump4 phxjump40 phxjump43 phxjump49 phxjump5 phxjump56 phxjump7a phxnoob2 phxnoob4 pimpjumps pimpjumps2 pimpjumpz_beta2 pindoljumps1 pingujumpz1 piratejump pjump1 platoj5 platorace3 playjump1 playjump2 podjump poej2 poejump1 poojumplv1 popsjmp10 popsjmp13 popsjmp16 popsjmp17 popsjmp18a popsjmp20 popsjmp2a popsjmp7 popsjmp8 popsjmp9 popsjumpin10 popsjumpin12 popsjumpin13 popsjumpin14 popsjumpin15 popsjumpin22 popsjumpin25 popsjumpin26 popsjumpin29 popsjumpin32 popsjumpin34 popsjumpin5 popsjumpin6 popsrace1 popsrace3 popsrace5 pprace prit_holyjump2 projectles666 prox_j1 ps2 q2shi7 q2shi8 qdtjump1 quickjumpz1 quickjumpz2 quickjumpz3 quickjumpz4 quickjumpz8 qwerty2 qwestjump1 qwestjump2 qwestjump4 qwestjump5 r0xjumpin r3_dj r3_j4 r3_race railjump#2 rajm1 ramap3 ramap7 ramap8 ramptest1 rare_j1 rare_j_1 rare_trick rareclipzjump rareclipzjump6 rayes-jump1 rbjump1 rbkjump1 redjump2 redjump3 redjump4 redjump5 redst0k3djumpz rekhanjump retractjump1 retractjump3 retractjump4 retractjump5 retractjump6 retractramp rjump1 rjump7 rmap1 runningchicken rvnxdm7 savjump1 secondz3 secondz5 secondz6 secondz7 secondz9 segajump1 servermap1 servermap2 servermap3 servermap4 servermap5 servermap6 servermap7 servermap8 shadow1 shais_jump3 shiny shortm shorty1 shorty2 sjump1 sjump2 sjump3 sk3lsjump1 sk3lsjump11 sk3lsjump13 sk3lsjump15 sk3lsjump18 sk3lsjump19 sk3lsjump2 sk3lsjump20 sk3lsjump22 sk3lsjump26 sk3lsjump28 sk3lsjump29 sk3lsjump3 sk3lsjump33 sk3lsjump36 sk3lsjump4 sk3lsjump45 sk3lsjump5 sk3lsjump8 sk3lsjump9 sk3lslongjump1 sk8jump3a skatejumps skilljumpz2 skorp_jump1 slipknotjump slipmap1 slipmap11 slipmap13b slipmap14a slipmap15 slipmap16a slipmap18 slipmap22b slipmap23 slipmap26 slipmap29 slipmap31 slipmap33 slipmap34 slipmap37 slipmap47 slipmap8 slug2 slyskyjump smalljumpin smaug4 smaug5 smaug6 smaug8 smaugjumping2 snakerace1 sonicjump7 souljumps spiderjump2 spjump11 spjump13 spjump15 spjump17 spjump18 spjump21 spjump23 spjump25 spjump26 spjump27 spjump29 spjump30 spjump4 spjump5 spjump8 spjump9 splashjumps splashjumps2 splashjumps3 spskate1 spskate2 spskate3 spydajump1 spyjumptest spyl33t spyl33t3 spylong1 spylong2 spylvl2 spyskip1 spyskip2 spyskip3 spyskip4 spyskip5 spytrick1 spytrick2 spyzjump14 spyzjump4 spyzjump5 spyzjump6 spyzjump7 spyzjump8 spyzjump9e st0rm1 st0rm2 st0rm3 stiffjump1 stiffjump2 stiffjump3 stiffjump4 strafejumping strramps stubbsyjump1 stubbsyjump10 stubbsyjump14 stubbsyjump15 stubbsyjump16 stubbsyjump18 stubbsyjump20 stubbsyjump21 stubbsyjump23 stubbsyjump24 stubbsyjump25 stubbsyjump29 stubbsyjump43 stubbsyjump44 stubbsyjump5 stubbsyjump6 stubbsyjump7 stubbsyjump8 stubbsyjump9 talljump4 talljump6 tehgrassrace tehhaunted tehjump5 tehjump6a tgaboot1 tgajump1 tgajump3 tgajump4 tgajump5 tgajump6 tgajump7 tgajump9 thecj thejump thejumps thejumps1 thenewcastro1 therails thewill14 thewill18 thewill2 thewill20 thewill25 thewill26 thewill29 thewill31 thewill33 thewill37 thewill39 thewill4 thewill41 thewill46 thewill52 thewill53 thewill55 thewill6 thewill61 thewill62 thewill63 thewill65 thewill66 thewill67 thewill8 thewill9 tick01 tjumps1 tjumps2 tjumps3 tonyscage tonysindustry tonysladder tonysline tonysoutside tonysunderground tookz_jumpz1 towercrates triggz-jump10 triggz-jump16 triggz-jump3 triggz-jump4 triggz-jump5 triggz-jump7 triggz-jump9 tritontryout2 tryout-lvl1 turkjump1 tw2 twixjump1 uraniumlv1 uranjump12 uranjump3 uranjump4 uranramps wauwau10 wauwau3 wcjmp1 whosh winjump1 winterjump wtf x3n0sjumps1 xcjump1 xhizjump1 xq1 xqcrap1 xqcrap2 xqcrap3 xqcrap5 xqicedom xqjump10 xqjump11 xqjump12 xqjump13 xqjump16 xqjump19 xqjump22 xqjump23 xqjump24 xqjump25 xqjump28 xqjump3 xqjump30 xqjump33 xqjump34 xqjump37 xqjump38 xqjump39 xqjump4 xqjump40 xqjump41 xqjump43 xqjump44 xqjump45 xqjump46 xqjump47 xqjump5 xqjump51 xqjump52 xqjump53 xqjump6 xqjump7 xqnewb1 xqnewb2 xqnewb3 xqnewb4 xqnewb6 xqnewb7 xqnewb8 xqracing xysant xysantjump xysanttreehouse xyzjump1 zfm_jump3 ziolojumps5 zmanjump zmanjump3 zork as4 adrenjumps20 flyjumpboy as5 weedsjump1 weedsjump2 as6 weedsjump4 as7 as8 adrenjumps24 forbiddenjump18 bibpro2 bibpro3 bibpro4 bibpro5 forbiddenjump23 weedsjump5 draxi9 dj_mars_3_way dj_half_pipe wolfrun1 q2dm1_race dj_ice_tiers quazjump2 castro3 edge_easy edge_medium merc4 gj5 edge_good_jumps denjump gj6 play1 play2 edge_rocket play3 denjump2 denjump3 play7 dj_speedway2 play5_2 play8 dj_speedway3 clipzjump1 clipzjump2 clipzjump6 quazjump3 castronew1 play9 quazjump5 twixjump2 play10 play11 play12 q2dm1_huge_race q2ctf1_race play13 castronew2 castronew3 play15 b0at20 b0at22 play16 dan_slide play17 play18 q2ctf2_race void5 adrenjumps25 adrenjumps26 ddrace_ice pprace_ice castrocross3 action action_big adrenjumps27 adrenjumps28 adrenjumps29 adrenjumps30 xqadren 4race1 pimp1 pimp2 pimp3 pimp4 pimp5 pimp8 pimp10 div2_final_2014 memijump1a slyrailjump uzijump1


Wäre es technisch möglich einen Skript zu schreiben, der Pro User die Anzahl der Maps aus der User File ausliest und die 2. Zahl durch ersetzt?

Mir ist bewusst, dass das ganze schon relativ komplex ist.

Dieser Beitrag wurde von Urne bearbeitet: 11. Juli 2014 - 21:46
Änderungsgrund: Aufgrund eines Fehlers im RSS Feed, der durch den Code ausgelöst wurde, den Code in eine Textdatei gesteckt. Urne

0

Anzeige

#2 Mitglied ist offline   RalphS 

  • Gruppe: VIP Mitglieder
  • Beiträge: 7.816
  • Beigetreten: 20. Juli 07
  • Reputation: 862

geschrieben 09. Juli 2014 - 16:14

Ja klar ist es möglich. :wink:




Oder möchtest Du auch wissen, wie? :unsure:

Bin grad nicht 100%ig sicher, ob das in der Datei wie oben alles in einer Zeile steht oder ob das doch irgendwie mehrere sind. :huh:

Bin mir auch nicht ganz im klaren, was da was sein soll und was wo ersetzt werden muß.

- Wenn zeilenweise, könnte man das recht gut mit sed bearbeiten.
- Damit läßt sich auch recht gut der n-te "sonstwas" in jeder Zeile isolieren und zur Auswertung / Weiterbearbeitung zurückgeben.
(grep geht dafür natürlich auch; ich find's nur einfacher und kompakter, wenn man auf so wenig Tools wie möglich zurückgreifen muß.)
- Dadurch, daß die fragliche andere Datei entsprechend dieser Zahl benannt ist, hast Du nun Zugriff auf dieselbe.
- Worte pro Zeile zählen geht mit wc -w. Davon müßte man dann eventuell vorhandene ständig vorkommende 'Worte' abziehen.
- Dieser Wert wäre dann mit sed zurückzuschreiben (mit der '-i' Option zum 'Inline bearbeiten').

Dieser Beitrag wurde von RalphS bearbeitet: 09. Juli 2014 - 16:17

"If you give a man a fish he is hungry again in an hour. If you teach him to catch a fish you do him a good turn."-- Anne Isabella Thackeray Ritchie

Eingefügtes Bild
Eingefügtes Bild
0

#3 Mitglied ist offline   mezo 

  • Gruppe: aktive Mitglieder
  • Beiträge: 207
  • Beigetreten: 04. Juli 09
  • Reputation: 1

geschrieben 09. Juli 2014 - 16:37

Ich versuche es noch mal verständlicher zu erklären.

Es gibt eine Datei mit dem Name "users.t", in der alle User stehen:
Angehängte Datei  code.txt (41,65K)
Anzahl der Downloads: 40
genau so wie hier aufgeführt.

Als Beispiel nehme ich mal mich:
204 1218 0 15 33 35 58 75 6751 fish 

Wie man sieht bin ich der User "204", also heißt meine Datei "204.u".
Ich habe diese auch schon mit deinem wc -w command ausgelesen und der Wert stimmt.
1090 /storage/downloads/204.u


Also müsste 1218 mit 1090 ersetzt werden.

Das müsste bei jedem User passieren und dieser Wert eben an der richtigen Stelle ersetzt werden.

Ich glaube aber nicht jeder User hat so eine Datei, also müsste man diese überspringen.

Ich müsste auch wissen wie, da ich auf diesem Gebiet leider nur wenig Ahnung habe.

Dieser Beitrag wurde von Urne bearbeitet: 11. Juli 2014 - 21:41
Änderungsgrund: Aufgrund eines Fehlers im RSS Feed, der durch den Code ausgelöst wurde, den Code in eine Textdatei gesteckt. Urne

0

#4 Mitglied ist offline   RalphS 

  • Gruppe: VIP Mitglieder
  • Beiträge: 7.816
  • Beigetreten: 20. Juli 07
  • Reputation: 862

geschrieben 09. Juli 2014 - 17:25

Naja, mit [ -f Datei ] ist das ja nun nicht das Problem.

Okay, also alles eine Zeile? Mh. Das macht es etwas umständlicher.

Auf jeden Fall muß aber erstmal das Jumpmod84 weg. Das stört da. Dazu mit
cut -d\ -f10- < Datei > tempdatei
das wegschmeißen. Oder gleich mit sed.

Als Nächstes wäre sowas wie printf prima geeignet, soweit vorhanden. So in dieser Art:

printf '%d %d %d [...] %d %s' $(< tempdatei)
wobei die %d für die Zahlen stehen und das %s für den Benutzernamen.

Das nimmt dann immer genau soviele Parameter wie angegeben sind und fügt dann dann ein LF ein. So kriegt man aus seinem fortlaufenden Text eine Matrix (die man auch noch mit Kontext erweitern könnte, indem man jeweils einen Präfix/Suffix pro Parameter angibt).

Hängt aber unter Umständen von der Implementierung von printf ab. Ergebnis dann natürlich wieder irgendwo hinschreiben (selbe Tempdatei oder was weiß ich wo).

Wenn man das dann hat, kann man wie oben weiter machen (sich aber außerdem auf den Kontext beziehen - das macht das sed sehr viel einfacher, weil man bloß noch Kontext+Alter Wert suchen muß und das mit dem neuen Wert ersetzen kann.

Zu guter Letzt muß dann die entgültige Datei geschrieben werden - zunächst ein
printf '%s ' 'JumpMod84'> Datei
und dann den Inhalt der tempdatei minus den Kontextmarkern... und den Zeilenumbrüchen... hinterher.
Letztere wird man am besten mit
tr -d '\n'
los; sed macht sich zeilenübergreifend nur bedingt gut. Oder man ersetzt sie einfach mit den eh notwendigen Leerzeichen
tr '\n' ' '
. Dann hat man mit sed ein klein bißchen weniger zu tun.

Dieser Beitrag wurde von RalphS bearbeitet: 09. Juli 2014 - 17:27

"If you give a man a fish he is hungry again in an hour. If you teach him to catch a fish you do him a good turn."-- Anne Isabella Thackeray Ritchie

Eingefügtes Bild
Eingefügtes Bild
0

#5 Mitglied ist offline   mezo 

  • Gruppe: aktive Mitglieder
  • Beiträge: 207
  • Beigetreten: 04. Juli 09
  • Reputation: 1

geschrieben 09. Juli 2014 - 18:49

Ich steige da leider nicht durch. Das ganze ist wesentlich zu komplex für mich.
0

#6 Mitglied ist offline   kermitaner 

  • Gruppe: Mitglieder
  • Beiträge: 1
  • Beigetreten: 11. Juli 14
  • Reputation: 0

geschrieben 11. Juli 2014 - 21:23

kannst du auf deinem server ruby (interpreter) installieren ?
dann könnte ich dir ggf. dafuer ein script bauen...
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0