sed

Как вставить строку после совпадения с помощью sed?

Как вставить строку после совпадения с помощью sed?

Одна из полезных и мощных команд Linux - это команда «sed». Эта команда используется для выполнения различных типов задач в Linux, таких как вставка, обновление и удаление определенного текста или строки на основе совпадения. Вы можете вставить текст в строку или файл по-разному, используя команду «sed».

Как вставить строку после нахождения совпадения в строке или строке показано в этом руководстве.

Вставить строку в строку

Новая строка может быть вставлена ​​после любого строкового значения с помощью команды «sed», если шаблон, определенный в команде, совпадает с любой частью строкового значения.

В следующем примере показано, как новая строка может быть добавлена ​​после строкового значения, если конкретная строка существует где-либо в строковом значении.

Пример-1: вставить строку в строку после нахождения совпадения

Следующая команда выполнит поиск «inng» в строке «Мне нравится программирование» и в строке текста «Нравится ли вам программирование??»Будет вставлен после строки, если строка поиска существует.

Здесь символ «&» используется для вставки строки после строки.

$ echo "Мне нравится программировать."| sed 's / inng / & Вы любите программировать??/ '

Следующий вывод показывает, что «inng» не существует в строке, и после строки не вставляется никакая строка.


Следующая команда выполнит поиск «ing.»В строке« Я люблю программировать », и он присутствует в строке.

$ echo "Мне нравится программировать."| sed 's / ing./ & Тебе нравится программировать??/ '

Следующий вывод показывает, что новая строка добавляется после строки.

Вставить строку в файл

Есть два способа вставить строку после того, как совпадение найдено в файле, который упомянут ниже. Когда команда «sed» используется без «опции -i», тогда содержимое файла останется неизменным, а в выходных данных будет отображаться содержимое файла с вставленной новой строкой. Вы должны использовать опцию «-i» с командой «sed», чтобы навсегда вставить новую строку в файл, если соответствующий шаблон существует в файле.

А. Использование «a» в команде «sed»

Буква «a» может использоваться в шаблоне поиска «sed» для добавления одной или нескольких строк в файле после строки, где шаблон поиска совпадает, или после определенного номера строки.

B. Использование «i» в команде «sed»

Букву «i» можно использовать в шаблоне поиска команды «sed» для вставки одной или нескольких строк в файл перед строкой, в которой соответствует шаблон поиска.

Вставить строку (строки) в файл на основе шаблона:

Создайте текстовый файл с разделителями табуляции с именем продукты.текст со следующим содержанием, чтобы показать использование вышеуказанного флага в команде «sed».

продукты.текст

ID Имя
01 Взбитые сливки
02 Какао-порошок
03 Сахар
04 Яйцо
05 Мука

Пример 2. Вставьте строку после определенного номера строки, используя букву «а»

Следующие команды показывают, как можно добавить новую строку после определенного номера строки продуктов.txt на основе шаблона, используемого в команде «sed».

Здесь первая команда покажет существующее содержимое файла. Команда «sed» добавит текст «b01 Разрыхлитель» после первых двух строк файла. Последняя команда используется для проверки того, изменено ли содержимое файла или нет.

продукты $ cat.текст
$ sed '2 a b01 \ t Разрыхлитель' продукты.текст
продукты $ cat.текст

Следующий вывод появится после выполнения указанной выше команды.

Пример 3. Вставьте строку после последней строки с помощью символа «а»

Следующая команда показывает, как добавить новую строку после последней строки файла. Первая и последняя команда показывает существующее содержимое файла до и после выполнения команды «sed». Символ «$» используется в шаблоне команды «sed» для упоминания последней строки файла.

продукты $ cat.текст
$ sed '$ a b01 \ tРазрыхлитель' продукты.текст
продукты $ cat.текст

Следующий вывод появится после выполнения указанной выше команды.

Пример 4. Вставьте строку в любом месте файла после сопоставления с шаблоном с помощью символа «а»

Следующая команда «sed» показывает, как новую строку можно добавить в любом месте файла на основе соответствующего шаблона. Шаблон, используемый в команде «sed», будет искать любую строку, начинающуюся с «s01», и добавлять после нее новую строку. Четвертая строка файла начинается с «s01», и новая строка будет вставлена ​​после этой строки.

продукты $ cat.текст
$ sed '/ ^ s01.* / a b01 \ tBaking Powder 'продукты.текст
продукты $ cat.текст

Следующий вывод появится после запуска команды.


Следующая команда «sed» выполнит поиск в любой строке, которая заканчивается на «Powder», и вставит новую строку после нее. Третья строка файла заканчивается на «Порошок». Итак, новая строка будет вставлена ​​после этой строки.

продукты $ cat.текст
$ sed '/ Powder $ / a b01 \ tBaking Powder' продукты.текст
продукты $ cat.текст

Следующий вывод появится после выполнения вышеуказанных команд.

Пример 5. Вставьте несколько строк после совпадающего шаблона, используя "a"

Следующая команда «sed» показывает способ добавления нескольких строк в содержимое файла на основе соответствующего шаблона.

Здесь две строки будут добавлены после третьей строки по шаблону.

продукты $ cat.текст
$ sed '/ ^ [a-c] / a b01 \ tПорошок для выпечки \ nb02 \ tПищевая сода' продукты.текст
продукты $ cat.текст

Следующий вывод появится после выполнения вышеуказанных команд.

Пример 6. Вставьте строку после сопоставления с шаблоном, используя букву «I»

продукты $ cat.текст
$ sed '/ cream / i b01 \ tBaking Powder' продукты.текст
продукты $ cat.текст

Следующий вывод появится после выполнения вышеуказанных команд.

Пример 7. Постоянно вставлять строку после совпадающего шаблона с помощью параметра «-i»

Следующая команда «sed» показывает, как навсегда изменить содержимое файла. Параметр «i» используется с командой «sed» для вставки новой строки в файл на основе шаблона.

продукты $ cat.текст
Продукты $ sed -i '/ e $ / a g01 \ tGhee'.текст
продукты $ cat.текст

Следующий вывод появится после выполнения вышеуказанных команд.

Заключение:

Способы вставки двух или более строк в файл с помощью команды «sed» с шаблоном были показаны в этом руководстве, чтобы помочь читателю применить эту команду для вставки строк в файл временно или постоянно на основе шаблона.

Как загрузить и играть в Sid Meier's Civilization VI в Linux
Введение в игру Civilization 6 - это современный подход к классической концепции, представленной в серии игр Age of Empires. Идея была довольно просто...
Как установить Doom и играть в него в Linux
Введение в Doom Серия Doom возникла в 90-х годах после выхода оригинальной Doom. Это мгновенно стал хитом, и с тех пор серия игр получила множество на...
Vulkan для пользователей Linux
С каждым новым поколением видеокарт мы видим, как разработчики игр расширяют границы графической точности и приближаются на шаг ближе к фотореализму. ...