Lijnen uit een bestand verwijderen met Sed

Unix- hulpprogramma SED biedt een effectieve en veelzijdige manier om een ​​of meer regels uit een toegewezen bestand te verwijderen om aan de behoeften van de gebruiker te voldoen.

Deze Unix- opdracht wordt gebruikt voor de verwerking van de opdrachtregel . Dit hulpprogramma kan worden gebruikt om expressies uit een bestand te verwijderen die kunnen worden geïdentificeerd door een op te geven scheidingsteken (zoals een komma, tabblad of spatie), op regelnummer of door te zoeken naar een tekenreeks, expressie of het adres van een regel in de syntaxis van Sed.

Sed: Eén of meer regels uit een bestand verwijderen

Hier ziet u hoe u een of meer regels uit een bestand verwijdert.

Syntaxis

 sed '[/] d'

sed '{[/] [, ] [/] d'

/.../ = scheidingstekens

n = regelnummer

string = string gevonden in in regel

regex = reguliere expressie die overeenkomt met het gezochte patroon

addr = adres van een regel (nummer of patroon)

d = verwijderen

Voorbeelden van Sed

Hier zijn enkele voorbeelden van het gebruik van de bovenstaande syntaxis.

Gebruik de volgende code om de derde regel te verwijderen:

 sed '3d' fileName.txt 

Verwijder de regel met de tekenreeks "awk", met behulp van:

 sed '/ awk / d' bestandsnaam.txt 

Je kunt de laatste regel verwijderen door in te typen:

 sed '$ d' bestandsnaam.txt 

Of verwijder alle lege regels door:

 sed '/ ^ $ / d' bestandsnaam.txt

sed '/./!d' bestandsnaam.txt

Verwijder de regelaanpassing met een reguliere expressie (door er één te verwijderen die digitale tekens bevat, minstens 1 cijfer, aan het einde van de regel):

 sed '/ [0-9 /] [0-9] * $ / d' bestandsnaam.txt 

Verwijder het interval tussen regels 7 en 9:

 sed '7, 9d' bestandsnaam.txt 

Dezelfde bewerking als hierboven maar het vervangen van het adres door parameters:

 sed '/ -Start /, / - End / d' bestandsnaam.txt 

De bovenstaande voorbeelden worden alleen gewijzigd bij de weergave van het bestand (stdout1 = scherm).

Gebruik voor permanente wijzigingen aan de oude versies (<4) een tijdelijk bestand voor GNU sed met behulp van het "-i [achtervoegsel]" :

 sed -i ".bak" '3d' bestandsnaam.txt 
Vorige Artikel Volgende Artikel

Top Tips