Широко використовувана шпаргалка "sed":
Найчастіше використовувані символи, що використовуються в команді 'sed', пояснюються в наступній таблиці.
Характер | Призначення |
a | Він використовується для додавання вмісту. |
b | Він використовується для розгалуження вмісту. |
c | Він використовується для зміни вмісту. |
d | Застосовується для видалення рядка файлу. |
D | Застосовується для видалення першого рядка файлу. |
g | Раніше він копіював із тексту холдингу. |
G | Він використовується для додавання до тексту холдингу. |
h | Він використовується для копіювання в тексті холдингу. |
H | Він використовується для додавання до тексту утримання. |
i | Він використовується для вставки. |
Я | Він використовується для друку замісного рядка. |
п | Він використовується для переходу до наступного рядка. |
N | Він використовується для додавання наступного рядка введення. |
стор | Він використовується для друку. |
P | На ньому друкується перший рядок. |
q | Застосовується для відмови. |
Питання | Застосовується для негайної відмови. |
р | Він використовується для читання файлу. |
Р | Він використовується для читання рядка з файлу. |
s | Він використовується для заміщення. |
т | Він використовується для тестування на заміну. |
Т | Він використовується для перевірки відсутності заміни. |
w | Він використовується для запису у файл. |
W | Він використовується для запису рядка у файл. |
х | Він використовується для обміну шаблонами та утримання. |
р | Він використовується для перекладу. |
z | Застосовується для очищення лінії. |
'=' | Він використовується для друку номера рядка. |
Замініть кілька рядків за допомогою команди 'sed' з терміналу:
Як команда "sed" може бути використана для заміни декількох рядків із файлу з терміналу, показано в цій частині цього посібника. Створіть файл з іменем sed.txt з наступним змістом перевірити команди цієї частини.
sed.txt
Повна форма sed - це "редактор потоку".
Це утиліта Unix, яка використовується для читання та перетворення тексту в іншому форматі.
Він був розроблений Лі Е. Макмехон.
Він використовується для обробки тексту.
Він підтримує регулярні вирази.
Приклад-1: Замініть дві послідовні лінії
Наступна команда 'sed' замінить два послідовні рядки іншим рядком. Тут параметр -z використовується для заміни послідовних рядків нульовими даними перед додаванням тексту заміни. Згідно з командою, 3рд та 4го рядки файлу будуть замінені текстом, "Це дуже корисний інструмент".
$ кішка сед.txt$ sed -z 's / Розроблено Лі Е. Макмехон.\ nВикористовується для тексту
обробка./ Це дуже корисний інструмент./ 'sed.txt
Наступний результат з’явиться після запуску команд.
Приклад-2: Замініть кілька рядків на основі відповідності та глобального прапора
Наступна команда 'sed' замінить усі рядки, що починаються зі слова, "Це" словом, 'Цей рядок замінено '.
$ кішка сед.txt$ sed 's / ^ Це.* / Цей рядок замінено / g 'sed.txt
Наступний результат з’явиться після запуску команд. Три рядки містять слово "Це'у файлі. Отже, ці рядки замінено текстом заміни.
Приклад-3: Замініть кілька рядків на основі команди збігу та наступного рядка
Наступна команда 'sed' замінить слово, 'є"за словом"було'з командою наступного рядка,' n '.
$ кішка сед.txt$ sed 'n; / is / s / is / was /' sed.txt
Наступний результат з’явиться після запуску команд. Ось, "є" існує в 2й та 4го рядки файлу, і ці рядки модифікуються словом "було".
Замініть кілька рядків, створивши файл сценарію 'sed':
У попередніх прикладах команди 'sed' виконувались з терміналу. Але це мова сценаріїв, і якщо скрипт містить декілька операторів, тоді краще створити файл sed з цим сценарієм. Створіть текстовий файл з іменем студентів.txt із наступним вмістом, в якому буде застосовано сценарій 'sed'.
студентів.txt
ID: 111045Ім'я: Роберт
Відділ: CSE
Партія: 35
ID: 111876
Ім'я: Йосип
Кафедра: BBA
Партія: 27
ID: 111346
Ім'я: Вільям
Відділ: CSE
Партія: 45
ID: 111654
Ім'я: Чарльз
Відділ: ЕЕО
Партія: 41
ID: 111346
Ім'я: Джон
Відділ: CSE
Партія: 25
ID: 111746
Ім'я: Томас
Відділ: CSE
Партія: 15
Приклад-4: Замініть кілька рядків файлу, використовуючи файл сценарію 'sed'
Створіть файл sed з іменем замінити.sed з наступним вмістом, щоб замінити кілька рядків на основі шаблону пошуку. Тут слово "CSE'буде здійснено пошук у текстовому файлі, і якщо збіг існує, тоді він знову буде шукати цифри 35 та 15. Якщо друге збіг існує у файлі, його буде замінено номером 45.
замінити.sed
/ CSE /p; n;
/ 35 /
s / 35/45 /;
p; d;
/ 15 /
s / 15/55 /;
p; d;
р;
Виконайте наступну команду, щоб перевірити наявний вміст файлу. "CSE" з'явилося чотири рази у текстовому файлі. 35 і 15 існують у двох місцях.
$ котячі студенти.txt
Наступна команда замінить вміст декількох рядків на основі сценарію sed.
$ sed -n -f замінити.студентів.txtНаступний результат з’явиться після запуску команди.
Висновок
У цьому посібнику показані різні способи заміни кількох рядків або вміст декількох рядків за допомогою команди 'sed'. Як цей скрипт може виконуватися з файлу sed, також показано в цьому посібнику. Сподіваюсь, цей підручник допоможе читачеві замінити кілька рядків будь-якого файлу за допомогою команди 'sed'.