Edytor strumieni (SED): podstawy

Edytor Strumieni Sed Podstawy



SED, znany również jako edytor strumieniowy, jest bardzo przydatnym narzędziem. Służy do wyszukiwania określonego słowa lub wzoru, a następnie robienia czegoś z tym słowem lub wzorem, innymi słowy, przekształcania go. W systemie Windows funkcja SED jest również znana jako funkcje „znajdź” i „zamień”. SED jest dostarczany z Ubuntu, więc nie ma potrzeby instalowania czegokolwiek; po prostu zacznij go używać. W tym samouczku dowiesz się, jak korzystać z dysku SED lub edytora strumieniowego.

Komenda „S”.

Najważniejszym ze wszystkich poleceń w SED lub edytorze strumieni jest polecenie „s”. „S” oznacza substytut. Składnia jest następująca:







'S / wyrażenie regularne / wymiana / flagi


Użyjmy więc pliku o nazwie „file.txt” do przykładów. Oto jak wygląda plik „file.txt”, jeśli go zakotwiczysz:




Użyjmy przykładu, aby pokazać, jak działa polecenie „s”:



Ale 'S / Pierwszy / księżyc / plik.txt > księżyc.txt


Kiedy takie wyrażenie jest podane, oznacza to:





    • s – oznacza substytut.
    • pierwszy – Słowo do wyszukania w pliku o nazwie „plik.txt”.
    • księżyc – słowo „pierwszy” zastępuje się słowem „księżyc”.
    • i – oznacza ignorowanie. W pierwszej części zignorujemy tę część.
    • file.txt – plik, w którym SED będzie szukać wzorca lub słowa. W tym przypadku słowo „pierwszy” będzie brzmiało:
    • szukano w pliku.txt

    • moon.txt – Gdy słowo „pierwszy” zostanie zastąpione słowem „moon”, zostanie ono zapisane w pliku „moon.txt”.

Co się tutaj dzieje? SED zastępuje słowo „pierwszy” słowem „księżyc” tylko w pierwszym przypadku (oznacza to, że jeśli słowo „pierwszy” pojawi się wiele razy, nie zastąpi go w całości ani nie zastąpi go wiele razy). Wyszukiwany plik nazywa się „file.txt” i po dokonaniu transformacji lub zamiany zostanie zapisany w „moon.txt”.



Oto jak to wygląda:


Pamiętaj, aby umieścić znak „/” tam, gdzie powinien się on znajdować. Jeśli pominiesz „/”, SED nie zaakceptuje polecenia.

Do tej pory zastępowaliśmy jedynie słowo „pierwszy” słowem „spotkany”. Załóżmy teraz, że chcemy zastąpić słowo „linia” (które występuje wiele razy, a konkretnie cztery razy) w trzeciej linijce słowem „anioł”.

Jak konkretnie celujemy w tę trzecią linię? Używamy następującego polecenia:

Ale '3s / linia / anioł / plik.txt > anioł.txt


Więc co tu się właśnie wydarzyło? Cóż, „3” określa numer linii. Dlatego przechodzi do trzeciej linii. Następnie zamień słowo „line” na „anioł” w pliku o nazwie „file.txt” i zapisz przekształcony plik jako „angel.txt”.


A co jeśli będziemy chcieli zastąpić lub przekształcić linie „3” i „4”?

Ale ' 3 ,4s / linia / anioł / plik.txt > anioł2.txt



Zauważ, że w poprzednim przykładzie użyliśmy flagi „i” do ignorowania. Teraz używamy flagi „g” dla globalnego.

Użyjmy przykładu, aby pokazać, jak działa polecenie „s”:

Ale 'S / linia / słońce / g’ plik.txt > niedz.txt


Kiedy takie wyrażenie jest podane, oznacza to:

„G” oznacza globalny. Pamiętaj, że w pierwszym przykładzie, gdy używamy flagi „i”, następuje tylko jedno jej zastąpienie. Teraz, gdy dodaliśmy „g” do słowa global, oznacza to zastępowanie wszędzie. Zatem zamiast mówić: pierwsza linia, druga linia, trzecia linia i ostatnia linia, jest napisane: pierwsze słońce, drugie słońce, trzecie słońce i ostatnie słońce. Zastępuje linię słowa w całym pliku (wszędzie) słowem „słońce”.


A co jeśli chcemy wybrać pojedynczą linię na podstawie zawartego w niej słowa? Cóż, widzimy, że ostatnia linia „pliku.txt” zawiera słowo „ostatni”. Załóżmy teraz, że chcemy komunikatu „To jest ostatnia linia. To jest ostatnie zdanie.” zdanie brzmiące: „To jest ostatni duch. To jest ostatnie zdanie.”

Piszemy co następuje:

Ale ' / ostatni / S / linia / duch / ’ plik.txt > duch.txt


Słowo „ostatni” mówi SED, aby wyszukał wiersz zawierający słowo „ostatni”, a następnie zastąpił słowo „linia” słowem „duch” w tym wierszu.


Załóżmy teraz, że chcemy zrobić odwrotnie. Załóżmy, że chcemy, aby w każdej linii bez słowa „ostatni” słowo „linia” zostało zmienione na „duch”. Napiszmy co następuje:

Ale ' / ostatni /! S / linia / duch / ’ plik.txt > Ghost2.txt


Jak widać, w każdej linii z wyjątkiem ostatniej (która zawiera słowo „ostatni”) słowo „linia” zostało zastąpione słowem „duch”.


Możemy to również zrobić z numerami linii:

Ale ' 3 , 4 ! S / linia / noc / plik.txt > noc.txt


W tym przypadku pominięto wiersze 3 i 4, ale w co drugim wierszu słowo „linia” zastąpiono słowem „noc”.

Wiele poleceń

A co by było, gdybyś miał wiele poleceń? Wolałbyś zrobić to pojedynczo czy wszystko na raz i zaoszczędzić trochę czasu i pracy?

A co jeśli chcemy zamienić słowo „pierwszy” na „dzień”, „drugi” na „noc”, a „reszta” na „duch”? W tym celu używamy średnika. Nie zapomnij postawić średnika na końcu!

Pamiętaj, że nie musisz koniecznie wstawiać flagi „i” ani flagi „ignore”, ale koniecznie musisz wstawić ukośnik (/) po frazie transformacji.

Sprawdźmy to teraz na przykładzie:

Ale 'S / Pierwszy / dzień / ; S / drugi / noc / ; S / trzeci / duch / ; S / ostatni / duch / ;’ plik.txt > kombinacja.txt


Wniosek

Edytor strumieniowy, czyli SED, to sposób na wybranie słowa lub wzorca i jego przekształcenie. W rzeczywistości jest to odpowiednik funkcji „znajdź” i „zamień” w wierszu poleceń. Polecenie SED może być naprawdę skomplikowane, ale jeśli znasz przynajmniej podstawy, jesteś gotowy, aby się nim zająć! SED jest w rzeczywistości bardzo potężnym narzędziem z wieloma funkcjami. Chociaż nie możemy omówić ich wszystkich w jednym samouczku, omówiliśmy podstawy dysku SED. Zasadniczo nauczyliśmy się, jak przekształcać określone słowo za pomocą polecenia „s”, gdzie „s” oznacza substytut. Możemy zastąpić słowa innymi słowami, selektywnie wybrać wiersz, w którym nastąpi podstawienie, a nawet je zanegować. Tak czy inaczej, jest to najłatwiejsza część dotycząca dysku SED.

Miłego kodowania!