Jak usunąć puste linie za pomocą SED

Jak usunąć puste linie za pomocą SED
Istnieją dwie możliwe metody usuwania pustych linii z pliku tekstowego za pomocą SED; Metody są wymienione poniżej i są szczegółowo omówione w nadchodzącej części tego przewodnika.
  • Metoda 1: Jak usunąć wszystkie puste wiersze w pliku tekstowym za pomocą SED
  • Metoda 2: Jak usunąć określone wiersze z pliku tekstowego za pomocą SED

Metoda 1: Jak usunąć wszystkie puste wiersze w pliku tekstowym za pomocą SED

Przed zagłębieniem się w głębokość tej metody zrozummy składnię, aby usunąć puste linie za pomocą SED:

Składnia

sed [opcje] '/^$/d' [nazwa pliku]

''/^$/d„jest podstawową częścią tego polecenia; Gdzie "^„Symbol pokazuje, że usunięcie musi być wykonywane od początku z pierwszego wiersza; "$”Reprezentuje, że musi iść do ostatniego wiersza pliku tekstowego i„D”Pokazuje, że delecja jest w toku.

Ta sekcja poprowadzi Cię do usunięcia wszystkich wierszy w pliku tekstowym za pomocą Edytora Stream (SED):

Utworzyliśmy plik tekstowy „usuwać.tekst; Najpierw uzyskaj treść tego pliku za pomocą „kot”Polecenie, jak podano poniżej i użyliśmy„-N„Opcja z nim, abyśmy mogli również uzyskać numery linii:

Obserwuje się, że istnieje wiele pustych linii i wpływają one na estetykę tego pliku tekstowego, a czytelnicy mogą nie zwracać uwagi na taką treść.

$ cat -n usuń.tekst

Tak więc, aby uniknąć powyższej sytuacji; Musisz usunąć puste linie, aby usprawnić proces czytania; Polecenie wspomniane poniżej usunie wszystkie te wiersze z „usuwać.tekst" plik.

Teraz możesz zauważyć, że puste linie są wyprane i wydrukowane są tylko te linie, które zawierają tekst, ale wynik jest wyświetlany tylko na terminalu, podczas gdy oryginalny plik pozostaje taki sam:

$ sed '/^$/d' usuń.tekst

Jeśli chcesz usunąć puste linie i zaktualizować również oryginalny plik, musisz użyć opcji na miejscu „-I”A poniżej wspomniane polecenie pomoże ci to zrobić:

$ sed -i '/^$/d' usuń.tekst

Metoda 2: Jak usunąć wybrane puste linie w pliku tekstowym za pomocą SED

Składnia do usuwania określonych wierszy w pliku tekstowym jest napisana poniżej:

Składnia

sed [opcje] '(numer linii) d' [nazwa pliku]

Główną częścią składni, na której polega polecenie, jest „(numer linii) d '”; Musisz umieścić dokładną liczbę linii pustej linii w „(numer kolejki)”I list„D”Pokazuje, że włożony numer linii zostanie usunięty:

Możesz usunąć określone wiersze w pliku tekstowym za pomocą polecenia SED; Utworzyliśmy nowy plik tekstowy „nowy.tekst”W tej sekcji. Na przykład dane wyjściowe poniższego polecenia pokazuje ten numer wiersza „2" jest pusty:

$ cat -n Newfile.tekst

A jeśli chcesz uruchomić polecenie, aby usunąć ten wiersz tylko, musisz określić numer wiersza, tak jak w poleceniu wspomnianym poniżej:

$ sed '2d' Newfile.tekst

Możesz także usunąć kolejne wiersze przy użyciu tej metody; Na przykład „nowy.tekst”Plik ma 3 puste wiersze„4,5,6„Jak widać na poniższym obrazku:

$ cat -n nowy.tekst

Usunąć te trzy kolejne linie; Musisz wstawić „,”Między numerem linii początkowego i końcowego, które można zobaczyć w poniższym poleceniu:

$ sed „4,6d” nowe.tekst

Na koniec możesz również użyć opcji w miejscu ”-I„Aby zapisać zmiany na stałe w pliku, ponieważ bez tej opcji polecenie SED drukuje wynik na terminalu, ponieważ zmodyfikowaliśmy powyższe polecenie, aby je używać„-I" opcja:

$ sed -i '4,6d' nowe.tekst

Wniosek

Ubuntu obsługuje wiele sposobów manipulowania danymi w pliku tekstowym; Na przykład możesz użyć domyślnego edytora tekstu Ubuntu, nano edytora itp. Jednak użyteczność linii poleceń SED Ubuntu prowadzi wszystkich tych redaktorów ze względu na jego funkcjonalność, takie jak dostęp do pliku z terminalu i wprowadzanie zmian bez otwierania. W tym artykule użyliśmy polecenia SED do usunięcia pustych wierszy z pliku tekstowego i opisaliśmy dwie metody tej operacji. "Metoda 1”Jest odpowiednio odpowiedni, gdy masz setki linii w pliku tekstowym i chcesz usunąć wszystkie puste linie jednocześnie: z drugiej strony,„ ”Metoda 2”Nadaje się do usunięcia pustych linii w małym dokumencie, w którym można usunąć linie jeden po drugim. Musisz jednak sam szukać pustych linii, jeśli chcesz śledzić „Metoda 2”: Tak więc, jeśli porównanie jest narysowane między obiema metodami,„Metoda 1„Wyprzedza”Metoda 2„O usunięciu pustych linii.