Usuń linie z pliku za pomocą Sed

Narzędzie Unix SED zapewnia skuteczny i wszechstronny sposób usuwania jednej lub więcej linii z wyznaczonego pliku, aby dopasować go do potrzeb użytkownika.

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.txt

sed '/./!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 
Poprzedni Artykuł Następny Artykuł

Najważniejsze Wskazówki