Verwijder regels in een tekstbestand die een specifieke string bevatten
Hoe zou ik sed gebruiken om alle regels in een tekstbestand te verwijderen die een specifieke string bevatten?
1652
3
Hoe zou ik sed gebruiken om alle regels in een tekstbestand te verwijderen die een specifieke string bevatten?
Om de regel te verwijderen en de uitvoer naar standaard uit te printen:
Om het bestand direct te wijzigen - werkt niet met BSD sed:
Idem, maar voor BSD sed (Mac OS X en FreeBSD) - werkt niet met GNU sed:
Om het bestand direct te wijzigen (en een backup te maken) - werkt met BSD en GNU sed:
Er zijn vele andere manieren om regels met een specifieke string te verwijderen dan
sed
:AWK
Ruby (1.9+)
Perl
Shell (bash 3.2 en later)
GNU grep
En natuurlijk
sed
(het afdrukken van het inverse is sneller dan het daadwerkelijke wissen):Je kunt sed gebruiken om regels op hun plaats in een bestand te vervangen. Het lijkt echter veel langzamer te zijn dan grep te gebruiken voor het omgekeerde in een tweede bestand en dan het tweede bestand over het origineel te schuiven.
bijv.
of
Het eerste commando duurt toch 3 keer langer op mijn machine.