Jak wstawić linię po meczu za pomocą „sed”?

Jak wstawić linię po meczu za pomocą „sed”?

Jednym z użytecznych i potężnych poleceń Linuksa jest polecenie „SED”. To polecenie służy do wykonywania różnych rodzajów zadań w systemie Linux, takich jak wstawka, aktualizacja i usuwanie określonego tekstu lub linii na podstawie dopasowania. Możesz wstawić tekst do ciągu lub pliku na różne sposoby, używając polecenia „SED”.

Jak wstawić linię po znalezieniu dopasowania do sznurka lub linii jest pokazana w tym samouczku.

Włóż linię do ciągu

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

Poniższy przykład pokazuje, w jaki sposób nowy wiersz można dodać po wartości ciągu, jeśli określony ciąg istnieje w dowolnym miejscu w wartości ciągu.

Przykład-1: Włóż linię do ciągu po znalezieniu dopasowania

Poniższe polecenie wyszukiwa „Inng” w ciągu „Lubię programowanie” i wiersz tekstu: „Czy lubisz programowanie?”Zostanie wstawiony po łańcuchu, jeśli istnieje ciąg wyszukiwania.

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

$ echo "Lubię programowanie."| sed 's/inng/& czy lubisz programowanie?/'

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


Poniższe polecenie przeszukie „ing.”W ciągu„ Lubię programowanie ”i istnieje w ciągu.

$ echo "Lubię programowanie.„| SED/ing./I czy lubisz programowanie?/'

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

Włóż linię do pliku

Istnieją dwa sposoby wstawienia linii po znalezieniu meczu w pliku wymienionym poniżej. Gdy polecenie „SED” jest używane bez „-i opcji”, wówczas zawartość pliku pozostanie niezmieniona, a wyjście wyświetli zawartość pliku za pomocą włożonej newline. Musisz użyć opcji „-i” z poleceniem „SED”, aby wstawić nową linię na stałe w pliku, jeśli dopasowanie wzorca istnieje w pliku.

A. Używając „A” w poleceniu „SED”

„A” można użyć we wzorze wyszukiwania „SED”, aby dołączyć jedną lub więcej linii w pliku po wierszu, w którym wzorzec wyszukiwania jest zgodny lub po określonym numerze wiersza.

B. Używając „i” w poleceniu „SED”

„I” można użyć we wzorze wyszukiwania polecenia „SED”, aby wstawić jeden lub więcej linii do pliku przed wierszem, w którym pasuje wzór wyszukiwania.

Włóż wiersze (y) w pliku opartym na wzorze:

Utwórz plik tekstowy podawany TAB, o nazwie produkty.tekst z następującą zawartością, aby pokazać zastosowania powyższej flagi w poleceniu „SED”.

produkty.tekst

Nazwa id
01 Whip Cream
02 Kakao proszku
03 Cukier
04 jajo
05 mąka

Przykład-2: Włóż linię po określonym numerze linii za pomocą „a”

Poniższe polecenia pokazują, w jaki sposób można dodać nowy wiersz, po określonej liczbie linii produktów.plik txt, w oparciu o wzór używany w poleceniu „sed”.

Tutaj pierwsze polecenie wyświetli istniejącą zawartość pliku. Polecenie „SED” dołączy tekst „B01 Pieking Powder”, po pierwszych dwóch wierszach pliku. Ostatnie polecenie służy do sprawdzenia, czy zawartość pliku jest zmieniana, czy nie.

produkty $ cat.tekst
$ sed '2 a b01 \ tbaking proszkowe.tekst
produkty $ cat.tekst

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

Przykład-3: Włóż linię po ostatnim wierszu za pomocą „a”

Poniższe polecenie pokazuje sposób dołączenia nowego wiersza po ostatnim wierszu pliku. Pierwsze i ostatnie polecenie pokazuje istniejącą zawartość pliku przed i po wykonaniu polecenia „SED”. Symbol „$” jest używany we wzorze polecenia „SED”, aby wymienić ostatni wiersz pliku.

produkty $ cat.tekst
$ sed '$ a b01 \ tbaking proszkowe.tekst
produkty $ cat.tekst

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

Przykład-4: Włóż linię w dowolnym miejscu w pliku po dopasowaniu wzoru za pomocą „A”

Poniższe polecenie „SED” pokazuje, w jaki sposób można dodać nową linię w dowolnym miejscu w pliku na podstawie wzoru dopasowania. Wzór użyty w poleceniu „SED” przeszuka dowolny wiersz, zaczynając od „S01” i doda po nim nowy ciąg. Czwarta wiersz pliku zaczyna się od „S01”, a nowa linia zostanie wstawiona po tej linii.

produkty $ cat.tekst
$ sed '/^s01.*/a b01 \ tbaking proszkowe produkty.tekst
produkty $ cat.tekst

Po uruchomieniu polecenia pojawi się następujące dane wyjściowe.


Poniższe polecenie „SED” przeszukie dowolną linię kończącą się „proszkiem” i włoży nową linię po niej. Trzeci wiersz pliku kończy się „proszkiem”. Tak więc nowa linia zostanie włożona po tej linii.

produkty $ cat.tekst
$ sed '/proszek $/a b01 \ tbaking proszkowy produkty.tekst
produkty $ cat.tekst

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

Przykład-5: Włóż wiele linii po dopasowaniu za pomocą „A”

Poniższe polecenie „SED” pokazuje sposób dodania wielu linii wewnątrz zawartości pliku na podstawie wzorca dopasowania.

Tutaj dwie linie zostaną dodane po trzeciej linii, zgodnie z wzorem.

produkty $ cat.tekst
$ sed '/^[a-c]/a b01 \ tbaking Powder \ nb02 \ tbaking Soda' Produkty.tekst
produkty $ cat.tekst

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

Przykład-6: Włóż linię po dopasowaniu wzoru za pomocą „i”

produkty $ cat.tekst
$ sed '/cream/i b01 \ tbaking Powder' Products.tekst
produkty $ cat.tekst

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

Przykład-7: Włóż linię na stałe po dopasowaniu za pomocą opcji „-i”

Poniższe polecenie „SED” pokazuje, jak na stałe zmienić zawartość pliku. Opcja „I” jest używana z poleceniem „SED” do wstawienia nowego wiersza do pliku na podstawie wzoru.

produkty $ cat.tekst
$ sed -i '/e $/a g01 \ tghee' produkty.tekst
produkty $ cat.tekst

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

Wniosek:

W tym samouczku pokazano sposoby wstawienia dwóch lub więcej wierszy za pomocą polecenia „SED” z wzorem, aby pomóc czytelnikowi zastosować to polecenie do wstawienia wierszy w liniach tymczasowo lub trwale na podstawie wzoru.