Polecenie SED do usuwania linii w pliku

Polecenie SED do usuwania linii w pliku

W większości przypadków, gdy pracujesz z plikiem tekstowym, prawdopodobnie będzie miała puste przestrzenie. Te puste przestrzenie mogą wahać się od kilku znaków do wielu linii, które są puste lub nie mają informacji. Trzymanie takich plików z niepotrzebnymi przestrzeniami może być czasochłonne i niewygodne. Może być kilka powodów, dla których przechowywaj te pliki, ale najlepszym sposobem ich obsługi jest usunięcie pustych linii. W tym artykule eksploruje polecenie UNIX SED i jego użycie w usuwaniu pustych wierszy w pliku.

Co jest sed?

SED oznacza edytora strumienia. Jest to nieinteraktywny edytor wiersza poleceń. Służy przede wszystkim do edytowania i filtrowania plików. SED jest najczęściej używany w skryptach, gdzie jest używany do sekwencyjnej edytowania pojedynczego pliku lub wielu plików. SED można użyć do wykonania sekwencji edycji akcji na jednym pliku lub grupie plików. Można go używać do usuwania linii i słów w pliku, zastępowania słów, a nawet dodawania tekstu w określonych lokalizacjach w pliku.

W tym samouczku dowiesz się o komendzie Linux SED, aby usunąć wiersze z pliku opartego na argumentach. Pamiętaj, że domyślne polecenie nie wprowadza żadnych zmian w oryginalnym pliku. Jeśli chcesz usunąć pliki w tym samym pliku, użyj opcji „-i” z poleceniami.

1. Usuń pierwszy wiersz z pliku

Możesz użyć „1d” opcja usuwania pierwszego wiersza z pliku. Na przykład masz plik CSV i chcesz usunąć linię tytułową. Użyj następującego polecenia, aby usunąć pierwszy wiersz SED.

SED „1D” nazwa_pliku  

Tutaj „1” reprezentują pierwszą linię i 'D' służy do usuwania. Więc łączenie „1d” Usuwa pierwszy wiersz z pliku. Zobacz poniższy przykład:

Przykład polecenia SED, aby usunąć pierwszy wiersz z pliku

Możesz zobaczyć, że „sed” Polecenie usunęło pierwszy wiersz z wyjścia.

2. Usuń ostatni wiersz z pliku

Użyj parametru zastawu „$ d” z sed, aby usunąć ostatnią linię lub linię stopki z grzywny. Poniższe polecenie usunie ostatni wiersz z nazwy pliku.plik CSV.

SED „$ d 'plik_name 

W powyższym poleceniu „$” reprezentują ostatni wiersz pliku i 'D' to usunąć tę linię.

Przykład polecenia SED, aby usunąć ostatni wiersz z pliku

3. Usuń określoną linię według liczby

Możesz określić numer linii, a następnie 'D' Aby usunąć tę konkretną linię. Na przykład, aby usunąć 5. plik z pliku, wykonaj:

SED „5D” nazwa_pliku.CSV  

4. Usuń zakres linii

SED pozwala również usunąć zakres linii z pliku. Możemy określić linię początkową i numer linii końcowej z oddzielonym poleceniem. Zobaczmy poniższy przykład:

SED „2,5D” nazwa_pliku 

Powyższe polecenie usunie numer wiersza z 2 do 5 z danego pliku.

5. Usuń linie inne niż pierwsza linia

Użyj negacji (!) Operator z opcją D w poleceniu SED. Następujące polecenie SED usuwa wszystkie wiersze oprócz linii nagłówka.

sed '1!d 'nazwa_pliku 

6. Usuń linie inne niż ostatnia linia

Użyj negacji (!) Operator z opcją D w poleceniu SED. Następujące polecenie SED usuwa wszystkie wiersze oprócz linii nagłówka.

sed '$!d 'nazwa_pliku 

7. Usuń linie inne niż określony zakres

Użyj negacji (!) Operator z opcją D w poleceniu SED. Następujące polecenie SED usuwa wszystkie wiersze oprócz linii nagłówka.

sed '2,5!d 'nazwa_pliku 

8. Usuń pierwszą i ostatnią linię

sed '1d; $ d' plik_name 

9. Usuń puste linie lub puste linie

Polecenie SED można użyć do usuwania pustych wierszy w pliku tekstowym. Aby to zrobić, możesz użyć następującego polecenia:

sed '/^$/d' plik_name  

Powyższe polecenie usuwa wszystkie puste wiersze z określonego pliku. Każda linia zawiera pojedynczą przestrzeń nie jest uważana za pojedynczą linię.

10. Usuń linie, które zaczynają się od określonego znaku

liczby sed '/^t/d'.CSV 

11. Usuń linie kończące się na określonym znaku

liczby sed '/t $/d'.CSV 

12. Usuń linie zawierające wzór

liczby sed '/wzór/d'.CSV 

Wniosek

Zawsze istnieje potrzeba czyszczenia plików tekstowych przed dalszym przetwarzaniem, ponieważ mogą mieć niechciane znaki, takie jak Tab, Newline, Space itp. SED oferuje wiele sposobów usuwania linii, słów, a nawet znaków z pliku. Wystarczy umieścić żądaną operację w wierszu polecenia, a skończyłeś!