sed

Sed Usuń białe znaki

Sed Usuń białe znaki
Usuwanie spacji w dokumentach jest niezbędnym etapem formatowania, który jest wymagany do poprawy ogólnego układu tekstu i zapewnienia, że ​​dane są czyste i uporządkowane. Pomaga przechowywać tylko wymagane dane i pozbyć się zbędnych spacji wiodących i końcowych. Oto kilka scenariuszy, w których może być konieczne usunięcie spacji:

Jeśli mówimy o wiodących białych znakach, są one stosunkowo łatwe do zauważenia, ponieważ znajdują się na początku tekstu. Jednak nie jest łatwo dostrzec końcowe spacje. To samo dotyczy podwójnych spacji, które czasem też trudno zauważyć difficult. Wszystko staje się trudniejsze, gdy trzeba usunąć wszystkie początkowe i końcowe spacje z dokumentu zawierającego tysiące wierszy.

Aby usunąć spacje z dokumentu, możesz użyć różnych narzędzi, takich jak awk, sed, cut i tr. W kilku innych artykułach omówiliśmy użycie awk do usuwania białych znaków. W tym artykule omówimy wykorzystanie sed do usuwania spacji z danych.

Dowiesz się, jak używać sed do:

Będziemy uruchamiać polecenia na Ubuntu 20.04 Ogniskowa Fossa. Możesz także uruchomić te same polecenia w innych dystrybucjach Linuksa. Do uruchamiania poleceń użyjemy domyślnej aplikacji Terminal Ubuntu. Aby otworzyć Terminal, użyj skrótu klawiaturowego Ctrl+Alt+T.

Co to jest Sed

Sed (oznacza edytor strumienia) to bardzo potężne i przydatne narzędzie w systemie Linux, które pozwala nam wykonywać podstawowe manipulacje tekstem na strumieniach wejściowych. To nie jest edytor tekstu, ale pomaga manipulować i filtrować tekst. Odbiera strumienie wejściowe i edytuje je zgodnie z instrukcjami użytkownika, a następnie drukuje przekształcony tekst na ekranie.

Dzięki sed możesz:

Używanie Sed do usuwania białych znaków

Do usuwania spacji z tekstu użyjemy następującej składni:

s/ REGEXP /zamiennik /flagi

Gdzie

Wyrażenia regularne

Niektóre z wyrażeń regularnych, których tutaj użyjemy, to:

W celach demonstracyjnych użyjemy następującego przykładowego pliku o nazwie „testfile”.

Wyświetl wszystkie spacje w pliku

Aby znaleźć wszystkie spacje w pliku, prześlij wynik polecenia cat do polecenia tr w następujący sposób:

$ plik testowy kota | tr " " "*" | tr "\t" "&"

To polecenie zastępuje wszystkie białe znaki w pliku symbolem (*), co ułatwia wykrycie wszystkich białych znaków, niezależnie od tego, czy są one pojedynczymi, wielokrotnymi, wiodącymi lub końcowymi białymi znakami.

Na poniższym zrzucie ekranu widać, że białe spacje zostały zastąpione symbolem *.

Usuń wszystkie spacje (w tym spacje i tabulatory)

W niektórych przypadkach musisz usunąć wszystkie spacje z danych, i.mi. wiodące, końcowe i spacje między tekstami. Następujące polecenie usunie wszystkie spacje z „pliku testowego”.

$ plik testowy kota | sed -r 's/\s+//g'

Uwaga: Sed nie zmienia twoich plików, chyba że zapiszesz wynik do pliku.

Wynik:

Po uruchomieniu powyższego polecenia pojawiły się następujące dane wyjściowe, które pokazują, że wszystkie spacje zostały usunięte z tekstu.

Możesz również użyć następującego polecenia, aby sprawdzić, czy wszystkie spacje zostały usunięte.

$ plik testowy kota | sed -r 's/\s+//g' | tr " " "*" | tr "\t" "&"

Z danych wyjściowych widać, że nie ma symbolu (*), co oznacza, że ​​​​wszystkie spacje zostały usunięte.

Aby usunąć wszystkie spacje, ale tylko z określonego wiersza (powiedzmy, że wiersz numer 2), możesz użyć następującego polecenia:

$ plik testowy kota | sed -r '2s/\s+//g'

Usuń wszystkie wiodące białe znaki (w tym spacje i tabulatory)

Aby usunąć wszystkie białe znaki z początku każdego wiersza (początkowe białe znaki), użyj następującego polecenia:

$ plik testowy kota | sed 's/^[ \t]*//'

Wynik:

Następujące dane wyjściowe pojawiły się po uruchomieniu powyższego polecenia, które pokazuje, że wszystkie wiodące spacje zostały usunięte z tekstu.

Możesz także użyć następującego polecenia, aby sprawdzić, czy wszystkie wiodące spacje zostały usunięte:

$ plik testowy kota | sed 's/^[ \t]*//' | tr " " "*" | tr "\t" "&"

Z danych wyjściowych widać, że na początku linii nie ma symbolu (*), co potwierdza, że ​​​​wszystkie wiodące spacje zostały usunięte.

Aby usunąć początkowe spacje tylko z określonego wiersza (powiedzmy, że wiersz numer 2), możesz użyć następującego polecenia:

$ plik testowy kota | sed '2s/^[ \t]*//'

Usuń wszystkie końcowe białe znaki (w tym spacje i tabulatory)

Aby usunąć wszystkie spacje z końca każdego wiersza (końcowe spacje), użyj następującego polecenia:

$ plik testowy kota | sed 's/[ \t]*$//'

Wynik:

Następujące dane wyjściowe pojawiły się po uruchomieniu powyższego polecenia, które pokazuje, że wszystkie końcowe spacje zostały usunięte z tekstu.

Możesz również użyć następującego polecenia, aby sprawdzić, czy wszystkie końcowe spacje zostały usunięte.

$ plik testowy kota | sed 's/[ \t]*$//' | tr " " "*" | tr "\t" "&"

Z danych wyjściowych widać, że na końcu linii nie ma symbolu (*), co potwierdza, że ​​​​wszystkie końcowe spacje zostały usunięte.

Aby usunąć końcowe spacje tylko z określonego wiersza (powiedzmy, że wiersz numer 2), możesz użyć następującego polecenia:

$ plik testowy kota | sed '2s/[ \t]*$//'

Usuń spacje wiodące i końcowe

Aby usunąć wszystkie spacje z początku i końca każdego wiersza (i.mi. zarówno początkowe, jak i końcowe spacje), użyj następującego polecenia:

$ plik testowy kota | sed 's/^[ \t]*//;s/[ \t]*$//'

Wynik:

Następujące dane wyjściowe pojawiły się po uruchomieniu powyższego polecenia, co pokazuje, że zarówno początkowe, jak i końcowe spacje zostały usunięte z tekstu.

Możesz również użyć następującego polecenia, aby sprawdzić, czy zarówno początkowe, jak i końcowe spacje zostały usunięte.

$ plik testowy kota | sed 's/^[ \t]*//;s/[ \t]*$//' | tr " " "*" | tr "\t" "&"

Z danych wyjściowych widać, że na początku lub na końcu linii nie ma symbolu (*), co potwierdza, że ​​​​wszystkie początkowe i końcowe spacje zostały usunięte.

Aby usunąć zarówno początkowe, jak i końcowe spacje tylko z określonego wiersza (powiedzmy, że wiersz numer 2), możesz użyć następującego polecenia:

$ plik testowy kota | sed '2s/^[ \t]*//;2s/[ \t]*$//'

Zamień wiele białych znaków na pojedyncze białe znaki

W niektórych przypadkach w pliku znajduje się wiele białych znaków, ale wystarczy tylko jeden biały znak. Możesz to zrobić, zastępując te wiele spacji pojedynczą spacją za pomocą sed.

Następujące polecenie zastąpi wszystkie wielokrotne białe znaki pojedynczym odstępem z każdego wiersza w „pliku testowym”.

$ plik testowy kota | sed 's/[ ]\+/ /g'

Wynik:

Następujące dane wyjściowe pojawiły się po uruchomieniu powyższego polecenia, które pokazuje, że wiele białych znaków zostało zastąpionych pojedynczym białym znakiem.

Możesz także użyć następującego polecenia, aby sprawdzić, czy wiele białych znaków jest zastępowanych pojedynczym białym znakiem:

$ plik testowy kota | sed 's/[ ]\+/ /g' | tr " " "*" | tr "\t" "&"

Z danych wyjściowych można zobaczyć pojedynczy symbol (*) w każdym miejscu, który weryfikuje, czy wszystkie wystąpienia wielu białych znaków zostały zastąpione pojedynczym białym znakiem.

Chodziło więc o usunięcie spacji z danych za pomocą sed. W tym artykule dowiedziałeś się, jak używać sed do usuwania wszystkich białych znaków z danych, usuwania tylko początkowych lub końcowych białych znaków oraz usuwania zarówno początkowych, jak i końcowych białych znaków. Nauczyłeś się również zastępować wiele spacji pojedynczą spacją. Teraz będzie Ci łatwo usuwać spacje z pliku zawierającego setki lub tysiące wierszy.

Gry Jak przechwytywać i przesyłać strumieniowo sesję gry w systemie Linux
Jak przechwytywać i przesyłać strumieniowo sesję gry w systemie Linux
W przeszłości granie w gry było uważane tylko za hobby, ale z czasem branża gier odnotowała ogromny wzrost pod względem technologii i liczby graczy. P...
Gry Najlepsze gry do grania ze śledzeniem rąk
Najlepsze gry do grania ze śledzeniem rąk
Oculus Quest niedawno wprowadził świetny pomysł śledzenia rąk bez kontrolerów. Przy stale rosnącej liczbie gier i działań, które wspierają zarówno for...
Gry Jak wyświetlić nakładkę OSD w pełnoekranowych aplikacjach i grach dla systemu Linux?
Jak wyświetlić nakładkę OSD w pełnoekranowych aplikacjach i grach dla systemu Linux?
Granie w gry pełnoekranowe lub korzystanie z aplikacji w trybie pełnoekranowym bez rozpraszania uwagi może odciąć Cię od istotnych informacji systemow...