sed

Jak wstawić linię po dopasowaniu za pomocą 'sed'?

Jak wstawić linię po dopasowaniu za pomocą 'sed'?

Jednym z przydatnych i potężnych poleceń systemu Linux jest polecenie „sed”ed. To polecenie służy do wykonywania różnych typów zadań w systemie Linux, takich jak wstawianie, aktualizowanie i usuwanie określonego tekstu lub wiersza na podstawie dopasowania. Możesz wstawić tekst do ciągu znaków lub pliku na różne sposoby, używając polecenia „sed”.

Jak wstawić linię po znalezieniu dopasowania w ciągu lub linii pokazano w tym samouczku.

Wstaw linię w String

Nowy wiersz można wstawić po dowolnej wartości ciągu za pomocą polecenia „sed”, jeśli wzorzec zdefiniowany w poleceniu pasuje do dowolnej części wartości ciągu.

Poniższy przykład pokazuje, jak można dodać nową linię po wartości ciągu, jeśli określony ciąg istnieje w dowolnym miejscu w wartości ciągu.

Przykład-1: Wstaw linię do ciągu po znalezieniu dopasowania

Następujące polecenie wyszuka „inng” w ciągu, „Lubię programowanie” i wiersz tekstu „Czy lubisz programować?” zostanie wstawiony po ciągu, jeśli ciąg wyszukiwania istnieje.

Tutaj znak „&” służy do wstawiania linii po łańcuchu.

$ echo "Lubię programować." | sed's/inng/& Czy lubisz programować?/'

Poniższe dane wyjściowe pokazują, że „inng” nie istnieje w ciągu i nie jest wstawiana żadna linia po ciągu.


Następujące polecenie wyszuka „ing.” w ciągu, „Lubię programowanie” i istnieje w ciągu.

$ echo "Lubię programować." | sed's/ing./& Czy lubisz programować??/'

Poniższe dane wyjściowe pokazują, że nowa linia jest dodawana po łańcuchu.

Wstaw linię do pliku

Istnieją dwa sposoby wstawienia linii po znalezieniu dopasowania w pliku, o którym mowa poniżej. Gdy polecenie „sed” zostanie użyte bez opcji „-i”, zawartość pliku pozostanie niezmieniona, a dane wyjściowe pokażą zawartość pliku z wstawionym znakiem nowej linii. Musisz użyć opcji „-i” z poleceniem „sed”, aby na stałe wstawić nową linię do pliku, jeśli pasujący wzorzec istnieje w pliku.

ZA. Używanie „a” w poleceniu „sed”

„a” można użyć we wzorcu wyszukiwania „sed”, aby dodać jeden lub więcej wierszy w pliku po wierszu, w którym pasuje wzorzec wyszukiwania lub po określonym numerze wiersza.

b. Używanie „i” w poleceniu „sed”

„i” można użyć we wzorcu wyszukiwania polecenia „sed”, aby wstawić jeden lub więcej wierszy w pliku przed wierszem, w którym pasuje wzorzec wyszukiwania.

Wstaw wiersz(e) do pliku na podstawie wzorca:

Utwórz plik tekstowy rozdzielany tabulatorami o nazwie produkty.tekst z następującą treścią, aby pokazać użycie powyższej flagi w poleceniu „sed”.

produkty.tekst

ID        Nazwa
01        Ubijaj śmietanę
02        Proszek kakaowy
03        Cukier
04        Jajko
05        Mąka

Przykład-2: Wstaw wiersz po określonym numerze wiersza, używając „a”

Poniższe polecenia pokazują, jak można dodać nową linię po określonym numerze linii produktów.plik txt, oparty na wzorcu użytym w poleceniu „sed”.

Tutaj pierwsze polecenie pokaże istniejącą zawartość pliku. Polecenie „sed” doda tekst „b01 Proszek do pieczenia” po pierwszych dwóch wierszach pliku. Ostatnie polecenie służy do sprawdzenia, czy zawartość pliku została zmieniona, czy nie.

$ produkty dla kotów.tekst
$ sed '2 a b01\tProszek do pieczenia' produktów.tekst
$ produkty dla kotów.tekst

Następujące dane wyjściowe pojawią się po uruchomieniu powyższego polecenia.

Przykład-3: Wstaw wiersz po ostatnim wierszu, używając „a”

Poniższe polecenie pokazuje sposób dodawania nowej linii po ostatniej linii pliku. Pierwsze i ostatnie polecenie pokazuje istniejącą zawartość pliku przed i po wykonaniu polecenia „sed”. Symbol „$” jest używany we wzorcu polecenia „sed”, aby wspomnieć o ostatniej linii pliku.

$ produkty dla kotów.tekst
$ sed '$ a b01\tProszek do pieczenia' produktów.tekst
$ produkty dla kotów.tekst

Następujące dane wyjściowe pojawią się po uruchomieniu powyższego polecenia.

Przykład 4: Wstaw wiersz w dowolnym miejscu pliku po dopasowaniu wzorca za pomocą „a”

Poniższe polecenie „sed” pokazuje, jak można dodać nową linię w dowolnym miejscu pliku w oparciu o pasujący wzorzec. Wzorzec użyty w poleceniu „sed” przeszuka każdą linię zaczynającą się od „s01” i doda po niej nowy ciąg. Czwarta linia pliku zaczyna się od „s01”, a nowa linia zostanie wstawiona po tej linii.

$ produkty dla kotów.tekst
$ sed '/^s01.*/a b01\tProszek do pieczenia'Produkty.tekst
$ produkty dla kotów.tekst

Następujące dane wyjściowe pojawią się po uruchomieniu polecenia.


Następujące polecenie „sed” przeszuka każdą linię, która kończy się na „Proszek” i wstawi po niej nową linię. Trzecia linia pliku kończy się na „Powder”. Tak więc nowa linia zostanie wstawiona po tej linii.

$ produkty dla kotów.tekst
$ sed '/Proszek$/a b01\tProszek do pieczenia' produkty.tekst
$ produkty dla kotów.tekst

Następujące dane wyjściowe pojawią się po uruchomieniu powyższych poleceń.

Przykład-5: Wstaw kilka wierszy po pasującym wzorze, używając „a”

Poniższe polecenie „sed” pokazuje sposób dodawania wielu wierszy w treści pliku na podstawie pasującego wzorca.

Tutaj, zgodnie ze wzorem, po trzecim wierszu zostaną dodane dwie linie.

$ produkty dla kotów.tekst
$ sed '/^[a-c]/a b01\tProszek do pieczenia\nb02\tSoda oczyszczona' produkty.tekst
$ produkty dla kotów.tekst

Następujące dane wyjściowe pojawią się po uruchomieniu powyższych poleceń.

Przykład-6: Wstaw linię po dopasowaniu wzoru za pomocą „I”

$ produkty dla kotów.tekst
$ sed '/cream/i b01\tProszek do pieczenia' produkty.tekst
$ produkty dla kotów.tekst

Następujące dane wyjściowe pojawią się po uruchomieniu powyższych poleceń.

Przykład-7: Wstaw linię na stałe po dopasowanym wzorze, używając opcji „-i”

Poniższe polecenie „sed” pokazuje, jak trwale zmienić zawartość pliku. Opcja „i” jest używana z poleceniem „sed” do wstawienia nowej linii do pliku na podstawie wzorca.

$ produkty dla kotów.tekst
$ sed -i '/e$/a g01\tGhee' produkty.tekst
$ produkty dla kotów.tekst

Następujące dane wyjściowe pojawią się po uruchomieniu powyższych poleceń.

Wniosek:

Sposoby wstawiania dwóch lub więcej wierszy do pliku za pomocą polecenia „sed” ze wzorcem zostały pokazane w tym samouczku, aby pomóc czytelnikowi zastosować to polecenie do wstawiania wierszy we wzorcu tymczasowo lub na stałe.

Gry Najlepsze gry w laboratorium aplikacji Oculus
Najlepsze gry w laboratorium aplikacji Oculus
Jeśli jesteś posiadaczem gogli Oculus, musisz wiedzieć o sideloadingu. Sideloading to proces instalowania w zestawie nagłownym treści innych niż sklep...
Gry Top 10 Games to Play on Ubuntu
Top 10 Games to Play on Ubuntu
Windows platform has been one of the dominating platforms for gaming because of the huge percentage of games that are developing today to natively sup...
Gry 5 najlepszych gier zręcznościowych dla systemu Linux
5 najlepszych gier zręcznościowych dla systemu Linux
W dzisiejszych czasach komputery to poważne maszyny używane do gier. Jeśli nie możesz uzyskać nowego wysokiego wyniku, będziesz wiedział, o co mi chod...