Hur man tar bort linjer som innehåller ett ord eller en sträng i en textfil

Om du har hundratals rader i en textfil och vill bulk radera rader som innehåller ett ord eller en sträng är den här artikeln åt dig.

Låt oss använda den utmärkta textredigeraren Notepad ++ (gratis) från tredje part för att radera rader som innehåller ett ord i en textbaserad fil med olika metoder.

Ta bort rader som innehåller ett ord, fras eller sträng i en textfil

Scenario: Jag har en enorm HOSTS fil som innehåller tusentals rader i den. Jag vill ta bort MSN-annonseringsserverposter från filen. Med andra ord måste jag ta bort rader som innehåller strängen " .msn.com " i HOSTS filen. Låt oss använda Notepad ++ för jobbet.

Relaterat: Hur byter du anteckningar med anteckningar ++ eller annan textredigerare?

Obs: Se alltid som en säkerhetskopia av textfilen innan du ändrar den.

Metod 1: Ta bort rader med hjälp av bokmärkesfunktionen i Notepad ++

  1. Öppna den textbaserade filen med Notepad ++
  2. Tryck på Ctrl + F för att öppna dialogrutan Sök och ersätt.
  3. Klicka för att välja fliken Markera .
  4. Skriv sökordet eller frasen i textrutan "Hitta vad". I det här exemplet skulle jag skriva .msn.com
  5. Aktivera kryssrutan för bokmärkesraden .
  6. Ställ in Sökläge på Normal.

  7. Klicka på Markera alla. Detta markerar (bokmärken) alla rader som innehåller strängen .msn.com, så som nedan:

  8. Stäng dialogrutan Sök genom att klicka på Stäng
  9. Klicka på Bokmärke på Sök-menyn och klicka på Ta bort bokmärkta rader .

Detta tar bort alla rader som innehåller söksträngen / ordet / frasen i textfilen.

Hur tar man bort rader som INTE innehåller ett ord eller en sträng?

För att göra motsatsen till ovanstående - dvs. radera rader som inte innehåller ett ord eller en fras:

  1. Upprepa stegen 1 → 8 ovan.
  2. I steg 9 klickar du på Ta bort omarkerade rader från sökmenyn i Notepad ++

Detta tar bort alla rader utom de som innehåller sökordet eller strängen.

Metod 2: Radera rader med hjälp av Sök och ersätt metoden med RegEx

Denna metod använder vanliga uttryck för att hitta och ersätta rader som innehåller ett ord eller en fras. Den här metoden är mycket kraftfull eftersom du kan matcha nästan vad som helst (t.ex. ord "som börjar med" eller rader som har ett specifikt "mönster".)

$config[ads_text6] not found
  1. Öppna den textbaserade filen med Notepad ++.
  2. Tryck på Ctrl + F för att öppna dialogrutan Sök och ersätt.
  3. Klicka på fliken Ersätt för att välja den.
  4. I textrutan Hitta vad: skriver du sökordet, föregått och följt av .* T.ex. om du vill ersätta rader som innehåller ordböckerna skriver du .*books.*

    Medan det är lite annorlunda i vårt fall där vi har två (speciella) . (dot) -tecken i vår söksträng .msn.com . Så vi måste skriva följande i textrutan Hitta vad :

     . * \. Msn \ Com. * 
    .* - matchar valfritt tecken vilket som helst antal repetitioner.

    \. - används för att undgå punkten (.) Så förstår systemet att du vill matcha strängen .msn.com

  5. Ställ in sökläget på Regular expression
  6. Se till att textrutan Ersätt med: lämnas tom.

  7. Klicka på Ersätt alla . Nu ersätter Notepad ++ alla matchande rader med tomma rader. I dialogrutan Ersätt ser du antalet händelser ersatta. Därefter måste du ta bort de tomma raderna.
  8. Stäng dialogrutan Sök / ersätt.
  9. Om du vill ta bort de tomma raderna klickar du på Redigera → Radoperationer → Ta bort tomma linjer .

Detta tar bort alla rader utom de som innehåller sökordet eller strängen.

Hur tar man bort rader som INTE innehåller ett ord eller en sträng med Regex?

För att göra motsatsen till ovanstående - dvs. radera rader som inte innehåller ett ord eller en fras med Regex:

  1. Följ steg 1 till 3 ovan.
  2. I steg 4 använder du regex-sökordet ^(?!.*\.msn\.com).*$

    Ovanstående sökoperatör hittar rader som inte innehåller ordet eller strängen .msn.com och ersätter dem med tomma rader.

  3. Följ sedan steg 5 till 9 för att ta bort de tomma raderna.

Det är allt! Hoppas att ovanstående metoder visade sig vara användbara för att snabbt ta bort rader som innehåller (eller inte innehåller) en specifik sträng, ord eller fras i en textfil.

Relaterade Artiklar