Gå til innhold

Er det en metode for å fjerne 60k linjer i en tekstfil?


Oknok

Anbefalte innlegg

Hvis man vil fjerne tusenvis av linjer i en tekstfil, og alle linjene jeg vil fjerne er unike, men de har noen ord til felles, hvordan gjør man?

 

F.eks har jeg en tekstfil med 65000 linjer. Jeg ønsker å samle visse linjer med relevant informasjon for akkurat det jeg ser etter. Men den informasjonen drukner da 95% av linjene er uten interesse i denne sammenhengen.

 

Verktøyene jeg har til rådighet er Notepad, Notepad++, Wordpad, diverse nettlesere. Ikke den mest imponerende verktøykassen, jeg vet.

 

Lenke til kommentar
Videoannonse
Annonse
2 minutes ago, Salvesen. said:

Vanskelig å si uten mer info, men jeg hadde nok matet det igjennom noe C# kode

Jeg har hørt om C# og nå har jeg sagt alt jeg vet om C#.

Håpet Notepad++ hadde en metode som kunne brukes. Jeg har ca en halvtimes erfaring med Notepad++ og har ikke oversikt over hva det kan gjøre.

 

Det er ikke så mye å vite om dette. Bare at det er mange tusen linjer og jeg ønsker å fjerne alle som har enkelte ord til felles.

Kunne også gjort det den motsatte veien og kun søkt etter linjer som har data jeg er interessert i, men jeg er ikke sikker på hva alle søkeordene er. Det virker da lettere å angripe det med å fjerne ting som er i veien.

 

Lenke til kommentar
12 minutes ago, likferd said:

La meg introdusere deg til Regex

Takk for forslaget. Men det er en funksjon for å erstatte det som blir funnet med noe annet.

Det jeg trenger er noe annet. Hvis en linje inneholder f.eks POSITION pluss en masse annet, ønsker jeg å slette *hele den linjen*.

 

Endret av Oknok
Presisering
Lenke til kommentar
9 minutes ago, Oknok said:

Takk for forslaget. Men det er en funksjon for å erstatte det som blir funnet med noe annet.

Nei, regexp er ein måte for å matche tekst.

^.*test.*$ vil matche alle linjer som inneheld ordet test. Om du då erstatter dei med ingenting så har du fjerna dei. ^ matcher start of line, . er any character, * er null eller fleire av forrige, test er rett fram, $ er end of line.

Endret av barfoo
Lenke til kommentar
Oknok skrev (41 minutter siden):

Jeg har hørt om C# og nå har jeg sagt alt jeg vet om C#.

Håpet Notepad++ hadde en metode som kunne brukes. Jeg har ca en halvtimes erfaring med Notepad++ og har ikke oversikt over hva det kan gjøre.

 

Det er ikke så mye å vite om dette. Bare at det er mange tusen linjer og jeg ønsker å fjerne alle som har enkelte ord til felles.

Kunne også gjort det den motsatte veien og kun søkt etter linjer som har data jeg er interessert i, men jeg er ikke sikker på hva alle søkeordene er. Det virker da lettere å angripe det med å fjerne ting som er i veien.

 

Så du ønsker å fjerne hver linje som har ett eller flere ord i seg?

Lenke til kommentar

Litt dårlig forklart hvordan du indentifiserer hvilke linjer du ønsker å fjerne, men sånn jeg forstår da identifiserer de med ett eller flere ord. 

Dette er veldig enkelt i Notepad++.

Du åpner først filen du skal jobbe med. 
Trykker ctrl+F for å få opp søkefunksjon (eventuelt Search på menyen, og så Find). 

I søkefunksjonen velger du Mark (fanen til høyre), og sørger for at "Bookmark Line" er på. 

Så skriver du inn søkeordet ditt, og velger Mark All. 
Har du flere søkeord, kan du gjøre dette flere ganger, de markerte linjene blir behold. 

Da skal alle linjene du har markert fått en blå ring ved siden av linjenummeret. 

Deretter velger du Search på meny-linjen, og nesten helt nede er det et alternativ som heter "Bookmark".
Der skal du velge "Remove Bookmarked Lines". 

 

 

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...