Jak usunąć znaki specjalne za pomocą SED

Jak usunąć znaki specjalne za pomocą SED
SED Command to narzędzie Linux, które można użyć do wykonywania wielu operacji obejmujących operacje wstawki i usuwania, znajdowanie/wyszukiwanie i wymianę operacji. Polecenie SED umożliwia użytkownikom Linux edytowanie i zastosowanie kilku funkcji na plikach bez ich otwierania bezpośrednio. Funkcje edytowania obsługi poleceń SED, które różnią się od poziomu początkujących do poziomu zaawansowanego: na przykład wewnątrz pliku tekstowego Operacje te można wykonać na kilku danych: znaki, numery, znaki specjalne, alfanumeryczne ET.,

Mając na uwadze znaczenie dowództwa SED; Nasz dzisiejszy przewodnik zbada kilka sposobów usunięcia znaków specjalnych za pomocą polecenia SED w Ubuntu.

Składnia polecenia SED jest napisane poniżej:

Składnia

Polecenie SED [opcje] [Nazwa pliku]

Znaki specjalne mogą czasem być potrzebą treści zapisanej w pliku tekstowym, ale jeśli są one używane niepotrzebnie, sprawi, że plik będą nieuporządkowane i istnieje szansa, że ​​czytelnik może nie zwracać uwagi.

Jak używać SED do usuwania znaków specjalnych w Ubuntu

W tej sekcji krótko opisuje sposoby usuwania znaków specjalnych z pliku tekstowego za pomocą SED; Zależy to od liczby znaków w pliku, które chcesz usunąć; Można istnieć dwie możliwości podczas usuwania znaków z pliku, albo chcesz usunąć jeden znak specjalny, albo chcesz usunąć wiele znaków jednocześnie. Z tych możliwości wskazanych powyżej rozszerzyliśmy tę sekcję na dwie metody, które dotyczą obu możliwości:

Metoda 1: Jak usunąć pojedynczy znak za pomocą SED

Metoda 2: Jak usunąć wiele znaków jednocześnie za pomocą SED

Pierwsza metoda dotyczy pierwszej możliwości, a druga możliwość zostanie omówiona w Method 2, zagłębiajmy się w nie jeden po drugim:

Metoda 1: Jak usunąć pojedynczy charakter specjalny za pomocą SED

Utworzyliśmy plik tekstowy „Ch.tekst”, Który zawiera kilka znaków specjalnych na różnych liniach; Treść wewnątrz pliku jest wyświetlana poniżej:

$ cat ch.tekst

Możesz zauważyć, że treść w środku „Ch.tekst„Jest trudny do odczytania; Na przykład chcemy usunąć znak „#” z pliku tekstowego; W tym celu musimy użyć następującego polecenia, aby usunąć „#” z całego dokumentu:

$ s s/\#// g 'ch.tekst

Ponadto, jeśli chcesz usunąć charakter specjalny z określonej linii; W tym celu musisz wstawić numer linii obok słowa kluczowego „S”, ponieważ poniższe wspomniane polecenie usunie „#” tylko z wiersza 3:

$ sed '3s/\#// g' ch.tekst

Metoda 2: Jak usunąć wiele znaków jednocześnie za pomocą SED

Teraz mamy inny plik ”plik.tekst”, Który zawiera więcej niż jeden typ postaci i chcemy je usunąć za jednym razem. W tej metodzie składnia jest nieco zmieniona z wyżej polecenia; Na przykład musimy usunąć pięć znaków „#$%*@" z "plik.tekst”;

Po pierwsze, spójrz na treść „plik.tekst„Ponieważ słowa są przerywane przez te postacie;

plik $ cat.tekst

Polecenie podane poniżej pomoże usunąć wszystkie te znaki specjalne z „plik.tekst”:

$ sed 's/[#$%*@] // g'.tekst

Tutaj możemy narysować inny przykład, powiedzmy, że chcemy usunąć tylko kilka znaków z określonych linii.

Utworzyliśmy nowy plik i treść „nowy plik.tekst”Pokazano poniżej:

$ cat Newfile.tekst

W tym celu napisaliśmy polecenie, które usunie „#@" I "%*”Z linii 2 i 3„ ”nowy plik.tekstOdpowiednio.

$ sed '2s/[#@] // g; 3s/[%*] // g 'Newfile.tekst

Polecenie SED użyte w powyższych metodach wyświetli wynik tylko na terminalu, zamiast stosować zmiany w pliku tekstowym: do tego musimy użyć opcji „-i” polecenia SED. Można go używać z dowolnym poleceniem SED, a zmiany zostaną wprowadzone do pliku zamiast drukowania na terminalu.

Wniosek

Najwyraźniej polecenie SED działa jako zwykły edytor tekstu, ale ma znacznie bardziej obszerną listę działań w porównaniu z innymi redaktorami. Musisz po prostu napisać polecenie, a zmiany zostaną wprowadzone automatycznie; Ta funkcja przyciąga entuzjastów Linuksa lub użytkowników, którzy wolą terminal niż GUI. Przestrzeganie korzystnych funkcjonalności SED; Nasz przewodnik koncentruje się na usuwaniu znaków specjalnych z pliku tekstowego. Jeśli porównamy tylko tę funkcję polecenia SED z innymi redaktorami, musisz wyszukać znaki w całym pliku, a następnie usunąć je jeden po drugim. Z drugiej strony SED wykonuje tę samą akcję, pisząc polecenie jednego wiersza na terminalu.