Как да вмъкнете ред след съвпадението, използвайки `sed`?

How Insert Line After Match Using Sed



Една от полезните и мощни команди на Linux е командата sed. Тази команда се използва за изпълнение на различни типове задачи в Linux, като например вмъкване, актуализиране и изтриване на определен текст или ред въз основа на съвпадението. Можете да вмъкнете текст в низ или файл по различни начини, като използвате командата sed.

Как да вмъкнете ред след намиране на съвпадение в низ или ред е показано в този урок.







Вмъкнете ред в низа

Нов ред може да бъде вмъкнат след всяка стойност на низ, като се използва командата sed, ако дефинираният в командата модел съвпада с която и да е част от стойността на низ.



Следващият пример показва как може да се добави нов ред след стойност на низ, ако конкретен низ съществува навсякъде в стойността на низ.



Пример-1: Вмъкнете ред в низ след намиране на съвпадение

Следващата команда ще търси inng в низ, харесвам програмиране и ред текст, харесва ли ви програмирането? ще бъде вмъкнат след низ, ако съществува търсещият низ.





Тук знакът & се използва за вмъкване на реда след низ.

$изхвърлен 'Харесва ми програмирането.' | sed 's / inng / & Харесва ли ви програмирането? /'

Следният изход показва, че inng не съществува в низа и след низът не се вмъква ред.




Следващата команда ще търси ing. в низ, аз харесвам програмиране и той съществува в низ.

$изхвърлен 'Харесва ми програмирането.' | sed 's/ing ./& Харесва ли ви програмирането?/'

Следният изход показва, че новият ред се добавя след низ.

Вмъкване на ред във файл

Има два начина за вмъкване на ред след намиране на съвпадение във файл, който е споменат по -долу. Когато командата sed се използва без опцията -i, съдържанието на файла ще остане непроменено и изходът ще покаже съдържанието на файла с вмъкнатия нов ред. Трябва да използвате опцията -i с командата sed, за да вмъкнете за постоянно новия ред във файла, ако съответстващият модел съществува във файла.

А. Използване на a в командата sed

A може да се използва в шаблона за търсене на sed за добавяне на един или повече редове във файл след реда, където моделът за търсене съвпада или след определен номер на ред.

B. Използване на i в командата sed

I може да се използва в шаблона за търсене на командата sed, за да вмъкнете един или повече редове във файл преди реда, където шаблонът за търсене съвпада.

Вмъкнете ред (и) във файл въз основа на шаблона:

Създайте текстов файл с разделяне на табулатор с име products.txt със следното съдържание, за да покаже използването на горния флаг в командата sed.

products.txt

Име на ИД

01 Разбийте сметана

02 Какао на прах

03 Захар

04 Яйце

05 Брашно

Пример-2: Вмъкнете ред след определен номер на ред с помощта на a

Следните команди показват как може да се добави нов ред, след определен номер на ред на файла products.txt, въз основа на шаблона, използван в командата sed.

Тук първата команда ще покаже съществуващото съдържание на файла. Командата sed ще добави текста, b01 Бакпулвер, след първите два реда на файла. Последната команда се използва за проверка дали съдържанието на файла е променено или не.

$коткаproducts.txt

$sed '2 a b01 tБекарски прах'products.txt

$коткаproducts.txt

Следният изход ще се появи след изпълнение на горната команда.

Пример-3: Вмъкнете ред след последния ред с помощта на a

Следващата команда показва начина за добавяне на нов ред след последния ред на файла. Първата и последната команда показва съществуващото съдържание на файла преди и след изпълнение на командата sed. Символът $ се използва в шаблона на командата sed за споменаване на последния ред на файла.

$коткаproducts.txt

$sed '$ a b01 tБекарски прах'products.txt

$коткаproducts.txt

Следният изход ще се появи след изпълнение на горната команда.

Пример-4: Вмъкнете ред навсякъде във файла след съвпадение на модел с помощта на a

Следващата команда sed показва как може да се добави нов ред навсякъде във файла въз основа на съответстващия модел. Моделът, използван в командата sed, ще търси всеки ред, започващ с s01, и ще добави новия низ след него. Четвъртият ред на файла започва със s01, а новият ред ще бъде вмъкнат след този ред.

$коткаproducts.txt

$sed '/^s01.*/a b01 tПрах за печене'products.txt

$коткаproducts.txt

Следният изход ще се появи след изпълнение на командата.


Следващата команда sed ще търси всеки ред, който завършва с Powder и ще вмъкне новия ред след него. Третият ред на файла завършва с прах. Така че новият ред ще бъде вмъкнат след този ред.

$коткаproducts.txt

$sed '/Прах $/a b01 t Прах за печене'products.txt

$коткаproducts.txt

Следният изход ще се появи след изпълнение на горните команди.

Пример-5: Вмъкнете няколко реда след съответстващия модел, като използвате a

Следващата команда sed показва начина на добавяне на няколко реда в съдържанието на файл въз основа на съответстващия модел.

Тук ще се добавят два реда след третия ред според модела.

$коткаproducts.txt

$sed '/^[a-c]/a b01 t Прах за печене nb02 tСода за хляб'products.txt

$коткаproducts.txt

Следният изход ще се появи след изпълнение на горните команди.

Пример-6: Вмъкнете ред след съвпадение на модел, използвайки I

$коткаproducts.txt

$sed '/cream/i b01 t Прах за печене'products.txt

$коткаproducts.txt

Следният изход ще се появи след изпълнение на горните команди.

Пример -7: Вмъкнете ред постоянно след съответстващия модел, като използвате опцията -i

Следващата команда sed показва как да промените съдържанието на файла за постоянно. Опцията i се използва с командата sed за вмъкване на нов ред във файла въз основа на шаблона.

$коткаproducts.txt

$sed '/e $/a g01 tGhee'products.txt

$коткаproducts.txt

Следният изход ще се появи след изпълнение на горните команди.

Заключение:

Начините за вмъкване на два или повече реда във файл чрез използване на командата sed с модел са показани в този урок, за да помогнат на читателя да приложи тази команда за вмъкване на редове във временно или постоянно въз основа на шаблона.