Usuń linie z pliku za pomocą Sed
To polecenie Unix jest używane do przetwarzania wiersza poleceń . Tego narzędzia można użyć do usunięcia wyrażeń z pliku, który można zidentyfikować za pomocą ogranicznika określającego (takiego jak przecinek, tabulator lub spacja), według numeru wiersza lub przez wyszukanie ciągu, wyrażenia lub adresu linii w składnia Sed.
Sed: Usuń jedną lub więcej linii z pliku
Oto jak usunąć jedną lub więcej linii z pliku.Składnia
sed '[/] d'sed '{[/] [, ] [/] d'
/.../ = ograniczniki
n = numer linii
ciąg = ciąg znaleziony w wierszu
regex = wyrażenie regularne odpowiadające szukanemu wzorowi
addr = adres linii (numer lub wzór)
d = usuń
Przykłady Sed
Oto kilka przykładów użycia powyższej składni.Użyj następującego kodu, aby usunąć trzecią linię:
sed '3d' nazwa_pliku.txt
Usuń wiersz zawierający ciąg „awk”, używając:
sed '/ awk / d' filename.txt
Możesz usunąć ostatnią linię, wpisując:
sed '$ d' filename.txt
Lub usuń wszystkie puste linie przez:
sed '/ ^ $ / d' filename.txtsed '/./!d' filename.txt
Usuń linię dopasowaną przez wyrażenie regularne (eliminując jedną zawierającą znaki cyfrowe, co najmniej 1 cyfrę, znajdującą się na końcu linii):
sed '/ [0-9 /] [0-9] * $ / d' filename.txt
Usuń odstęp między wierszami 7 i 9:
sed '7, 9d' filename.txt
Ta sama operacja jak powyżej, ale zastępująca adres parametrami:
sed '/ -Start /, / - End / d' filename.txt
Powyższe przykłady są zmieniane tylko na wyświetlaczu pliku (stdout1 = ekran).
Dla trwałych zmian w starych wersjach (<4) użyj tymczasowego pliku dla GNU sed, używając „przyrostka -i” :
sed -i ".bak" '3d' filename.txt