![]() |
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Regler | Links | Albums | FAQ | Members List | Kalender | Søgning | Dagens Stillinger | Mark Forums Read |
| UNIX for dummyer Spørgsmål & svar Hvis du ikke ved, hvor man skal sende en UNIX-eller Linux-spørgsmål, efter det her. Alle UNIX og Linux newbies velkommen! |
Mere UNIX og Linux Forum Emner du måske kan finde Helpful
|
||||
| Tråd | Thread Starter | Forum | Svar | Last Post |
| "sed" for at kontrollere filstørrelse & echo "" destination fil | jockey007 | Shell Programmering og Scripting | 7 | 04-28-2009 03:08 AM |
| Hvordan kan jeg erstatte "(", "\" "+" i en fil | mail2sant | Shell Programmering og Scripting | 3 | 04-23-2008 12:10 AM |
| Udvikling Releases: Linux Mint 4.0 Beta "Fluxbox", 4.0 Alpha "Debian" | iBot | UNIX og Linux RSS Nyheder | 0 | 01-04-2008 03:00 PM |
| Forklar line "mn_code \u003d` env | grep ".. mn" | awk-F "\u003d" '(print $ 2)' `" | Lokesha | UNIX for dummyer Spørgsmål & svar | 4 | 12-20-2007 01:52 AM |
| Nr. utpmx indrejse: du skal exec "login" fra laveste niveau "Shell" | peterpan | UNIX for dummyer Spørgsmål & svar | 0 | 01-18-2006 04:15 AM |
![]() |
|
|
LinkBack | Thread Tools | Søg denne tråd | Rate Thread | Display Modes |
|
|
|
||||
|
"VI"-ing en konstant opdateret fil
Hej,
En lidt af et dumt spørgsmål her. Undskyld folkens. Antag at jeg har denne fil, som bliver opdateret med uregelmæssige mellemrum (et par sekunder, et par minutter, hvem ved) ved en baggrund proces. I 'VI»Denne fil med den hensigt at redigere i den, så det åbner en midlertidig kopi som de sædvanlige / tmp/720cwhatever Lad os nu antage, mens jeg har denne fil åbnes, dens opdateres flere gange i baggrunden proces. Jeg laver mine ændringer, save-quit. Hvad sker der med de opdateringer, der blev foretaget af baggrunden proces i løbet af den tid, jeg havde filen åbnet? Hvordan kan jeg afhjælpe dette? (desværre stoppe baggrunden processen er ikke en mulighed). Filen er forholdsvis stor også (ca. 40Mb), så det tager VI et par sekunder for at indlæse det op, gemme det osv. .... Unix er ksh. OS er SunOS. Hope you guys kan hjælpe! - På forhånd tak! |
|
||||
|
OK cheers guys!
Lidt mere info: Hvad jeg ønsker, er dette: Dette er en stor fil, fuld af filnavne og en hash-kode for hver filnavn. hver linje i filen er filnavn, dato, hash-kode filnavn, dato, hash-kode ... Anyway, så en fil kommer i en server, får en hash-kode, som derefter sættes ind i denne store logfil af minen, og derefter filen er behandlet. Skulle filen blive sendt ind igen til serveren, sin hash-kode kontrolleres, og hvis den eksisterer (dvs. har min proces behandlet med det allerede) det drejer sig om filen korrekt. Jeg gået galt, når jeg behovet for at oparbejde den samme fil igen - så jeg har brug for at redigere store logfilen og fjerne posten (hele linjen - navn, dato, hash-kode), således at jeg kan brødføde det igennem igen. Skriv en kort køretur til at håndtere dette? - Ikke sikker - det en af dem, hvor det sker ofte, men ikke ofte nok til at berettige en sh .... men noget, jeg tror, jeg kunne se ind. En anden ting: Antag at to personer sudos til en bruger (den samme bruger) først, og derefter redigeret filen - du får ikke besked om filen forandring, når du gemmer / quit ret? - I det mindste det er, hvad det ser ud til at ske i løbet af her i Bizarro verden ... |
|
|||||
|
Percy, Her er en mulig løsning: 1) Omdøb "work_file" til en "tmp_file" og straks oprette en nye "work_file", således at nye rekorder fortsat kan føjes til det. Code:
mv work_file tmp_file touch work_file 2) "VI"De" tmp_file "og foretage alle ændringer, du ønsker. 2.a) Når du er færdig med dine ændringer på "tmp_file", ikke holde op endnu. 2.b) Gå til slutningen af "tmp_file" og i kommandolinjen type: Code:
:r work_file Dette vil læse "work_file" helt og placere den efter den sidste linje af "tmp_file". 2.c) Skriv og forlade "tmp_file". Som du siger, at filen er meget stor, hvis du prøver at gemme arbejdsområdet som "work_file", kan det tage lang tid og bruger en masse hukommelse og diskplads. 3) Umiddelbart omdøbe "tmp_file" tilbage til "work_file". Code:
mv tmp_file work_file Se, om det kunne arbejde for dig. |
|
||||
|
Tak for dette.
Der er stadig for lille potentiale mangler tilføjelser til logfil mellem trin 2c og 3 - og det skyldes hovedsagelig, hvor hurtigt jeg kan skrive "MV file fil2" - i panik, jeg sandsynligvis bruge mere tid på at trykke på Backspace end faktisk at skrive kommandoer korrekt. Dens helt sikkert en bedre blikfang indgange end den løsning, jeg havde i tankerne - så tak meget! ![]() |
![]() |
| Bogmærker |
| Thread Tools | Søg denne tråd |
| Display Modes | Bedøm denne tråd |
|
|