Lijnen uit een bestand verwijderen met Sed
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.txtsed '/./!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