sed

Як замінити все після шаблону за допомогою команди 'sed'

Як замінити все після шаблону за допомогою команди 'sed'

Завдання заміни можуть виконуватися в Linux різними способами. Команда 'sed' є одним із способів виконати завдання заміни. Цю команду можна використовувати для заміни тексту в рядку або файлі, використовуючи інший шаблон. Як ви можете замінити все після відповідного шаблону за допомогою команди 'sed', показано в цьому посібнику.

Заміни все після матчу на рядок:

Як частину рядка можна замінити на основі відповідного шаблону та $ PARTITION_COLUMN показано в цьому розділі цього посібника. Але ця змінна працює, якщо шаблон відповідає будь-якому слову на початку або в середині рядка. Він не замінить текст, якщо шаблон відповідає останньому слову рядка.

Приклад-1: Замінити всіх після матчу за допомогою $ PARTITION_COLUMN

Наступна команда виконає пошук символу "a", а решта після "a" буде замінена текстом "популярний сайт блогу". $ PARTITION_COLUMN.* використовується для визначення частини, що залишилася після символу, 'a'.

$ echo "LinuxHint - це веб-сайт" | sed "s / a $ PARTITION_COLUMN.* / популярний сайт блогу / "

Наступний результат з’явиться після запуску команди. Тут "веб-сайт" замінено на "популярний веб-сайт блогу".


Наступний шаблон буде шукати слово 'веб'У рядку і замініть решту частини на'веб'За текстом'популярний сайт блогу'якщо збіг існує та'веб'Не є частиною останнього слова рядка.

$ echo "LinuxHint - це веб-сайт" | sed "s / web.* $ PARTITION_COLUMN.* / популярний сайт блогу / "

Наступний результат з’явиться після запуску команди. Тут „веб-сайт” є останнім словом рядка, і з цієї причини заміни не проводилось.

Приклад-2: Замінити все після збігу, використовуючи шаблон

Наступна команда буде шукати слово 'баш'глобально в рядку і замінити все словом, якщо слово існує в рядку. 'g'Використовується тут для глобального пошуку.

$ echo "Мені подобається програмування на bash" | sed "s / bash.* / python script / g "

Наступний результат з’явиться після запуску команди. Тут 'bash' існує в середині рядка, і заміна виконана.

Замінити все після збігу у файл:

Весь вміст певного рядка або декількох рядків або залишків рядків файлу після збігу можна замінити за допомогою 'sed'команда. Створіть текстовий файл з іменем відвідуваність.txt із наступним вмістом для перевірки прикладів, показаних у цьому розділі.

відвідуваність.txt

1108885 присутній
1999979 присутній
1769994 відсутня
1105656 відсутній
1455999 відсутній

Приклад -3: Замінити весь вміст з рядка файлу після збігу

Наступна команда 'sed' здійснить пошук за номером 1769994 у файлі, і все, що має номер, буде замінено текстом, '1586844 присутній', якщо номер існує в будь-якому рядку файлу.

$ котяча прихильність.txt
$ sed "s / 1769994.* / 1586844 присутній / "відвідуваність.txt

З'явиться наступний вивід під час виконання команд. Тут номер пошуку знаходиться у третьому рядку файлу, і заміну зроблено.

Приклад -4: Замінити весь вміст із декількох рядків файлу після збігу

Наступна команда 'sed' показує використання змінної $ PARTITION_COLUMN для заміни декількох рядків із файлу. Команда буде шукати "110" на початку кожного рядка файлу і замінити все на "110" текстом "Недійсний запис", де буде знайдений відповідний текст.

$ відвідуваність котів.txt
$ sed "s / ^ 110.* $ PARTITION_COLUMN.* / Недійсний запис / "відвідуваність.txt

Наступний результат з’явиться після запуску команд. "110" існує у двох рядках файлу, і вони були замінені текстом, що замінює.

Приклад 5: Замініть весь вміст із рядка файлу, використовуючи 'c' після збігу

Наступне 'sed'команда показує використання'c'щоб замінити все після матчу. Ось, 'c'вказує на зміну. Команда буде шукати слово "сьогодення'у файлі і замінити весь рядок текстом,'Цей рядок замінено'якщо слово існує в будь-якому рядку файлу.

$ відвідуваність котів.txt
$ sed '/ present / c Цей рядок замінено на' відвідуваність.txt

Наступний результат з’явиться після запуску команд. Слово "присутній" існує у перших двох рядках файлу, і ці два рядки замінено текстом, що замінює.

Приклад 6: Замініть весь вміст із рядка файлу на основі початкового та кінцевого зразків

Іноді потрібно замінити текст на основі початкової та кінцевої схем. Наступна команда 'sed' показує спосіб визначення початкового та кінцевого шаблонів для заміни рядків з файлу. Команда здійснить пошук у тих рядках у файлі, які починаються з цифри 110 і закінчуються словом "відсутні" та замінюють все словом "замінено" там, де зразки збігаються.

$ відвідуваність котів.txt
$ sed -e 's / ^ 110.* відсутність $ / замінено / g 'відвідуваність.txt

Наступний результат з’явиться після запуску команд. Тут перший і четвертий рядки починаються з цифри 110, але слово "відсутній" існує лише у четвертому рядку. Отже, четвертий рядок файлу замінено текстом, що замінює.

Висновок:

Команда "sed" є дуже потужним інструментом Linux для виконання різних типів завдань, пов'язаних з обробкою тексту. Завдання заміни на основі відповідного шаблону обговорюється в цьому посібнику за допомогою різних типів шаблонів у команді 'sed'. $ PARTITION_COLUMN, 'c' та '.* 'використовується у цьому посібнику для заміни всього рядка файлу, де існує відповідний шаблон. Тут показано використання деяких символів визначальних шаблонів, таких як '^' та '$'. Існує багато інших символів для визначення шаблону в регулярному виразі для цілей пошуку. Сподіваюся, цей підручник допоможе читачеві дізнатися основи заміни всього файлу після матчу.

Як зафіксувати та транслювати ігровий сеанс на Linux
Раніше грати в ігри вважалося лише хобі, але з часом ігрова індустрія спостерігала величезний ріст з точки зору технологій та кількості гравців. Аудит...
Найкращі ігри для гри з відстеженням рук
Нещодавно Oculus Quest представив чудову ідею відстеження рук без контролерів. Завдяки постійно зростаючій кількості ігор та заходів, які виконують пі...
Як показати накладання екранного меню в повноекранному додатку та іграх для Linux
Гра у повноекранні ігри або використання додатків у повноекранному повноекранному режимі може відключити від відповідної системної інформації, видимої...