Как заменить несколько строк с помощью команды `sed`

How Replace Multiple Lines Using Sed Command



Иногда требуется заменить несколько строк файла каким-либо конкретным символом или текстом. В Linux существуют разные команды для замены нескольких строк файла. Команда sed - одна из них для выполнения задач этого типа. Полная форма `sed` - это редактор Steam, и он в основном используется для чтения и преобразования текста различными способами с использованием регулярных выражений. В этом руководстве объясняется, как эту команду можно использовать для замены нескольких строк файла различными способами.

Шпаргалка по `sed`:

Наиболее часто используемые символы, используемые в команде `sed`, объяснены в следующей таблице.







Характер Цель
к Он используется для добавления содержимого.
б Он используется для разветвления контента.
c Он используется для изменения содержания.
d Используется для удаления строки файла.
D Он используется для удаления первой строки файла.
грамм Раньше он копировал из удерживаемого текста.
грамм Он используется для добавления из удерживаемого текста.
час Он используется для копирования в удерживающем тексте.
ЧАС Он используется для добавления к удерживаемому тексту.
я Используется для прошивки.
я Он используется для печати заменяющей строки.
п Используется для перехода к следующей строке.
N Он используется для добавления следующей строки ввода.
п Он используется для печати.
п Используется для печати первой строки.
какие Он используется, чтобы бросить курить.
Q Используется для немедленного выхода.
р Он используется для чтения файла.
р Он используется для чтения строки из файла.
s Используется для замены.
т Он используется для проверки на замену.
Т Он используется для проверки отсутствия замены.
в Он используется для записи в файл.
В Он используется для записи строки в файл.
Икс Он используется для обмена узорами и удержания.
а также Используется для перевода.
С участием Используется для очистки линии.
знак равно Он используется для печати номера строки.

Замените несколько строк с помощью команды `sed` из терминала:

Как можно использовать команду `sed` для замены нескольких строк из файла из терминала, показано в этой части этого руководства. Создайте файл с именем sed.txt со следующим содержимым проверьте команды этой части.



sed.txt



Полная форма sed - это потоковый редактор.





Это утилита Unix, которая используется для чтения и преобразования текста в другой формат.

Его разработал Ли Э. МакМахон.



Используется для обработки текста.

Он поддерживает регулярные выражения.

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

Следующая команда `sed` заменит две последовательные строки другой строкой. Здесь параметр -z используется для замены последовательных строк нулевыми данными перед добавлением заменяющего текста. Согласно команде, 3rdи 4thстроки файла будут заменены на текст, «Это очень полезный инструмент» .

$Котsed.txt
$sed -С участием 's / Он был разработан Ли Э. МакМахоном. nОн используется для текста
обработка. / Это очень полезный инструмент. / '
sed.txt

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

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

Следующая команда `sed` заменит все строки, начинающиеся со слова, 'Это' словом ' Эта строка заменена ‘.

$Котsed.txt
$sed 's / ^ It. * / Эта строка заменена / g'sed.txt

Следующий вывод появится после выполнения команд. В трех строках есть слово ‘ Это ‘В файле. Итак, эти строки были заменены замещающим текстом.

Пример-3: замена нескольких строк на основе команды соответствия и следующей строки

Следующая команда `sed` заменит слово,’ является 'Словом' было ‘С помощью следующей команды‘ n ’.

$Котsed.txt
$sed '{n; / is / {s / is / was /}}'sed.txt

Следующий вывод появится после выполнения команд. Здесь, 'является' существует в 2ndи 4thстроки файла, и эти строки изменяются словом 'было' .

Замените несколько строк, создав файл сценария `sed`:

В предыдущих примерах команды `sed` выполнялись с терминала. Но это язык сценариев, и если сценарий содержит несколько операторов, лучше создать файл sed со сценарием. Создайте текстовый файл с именем student.txt со следующим содержимым, в котором будет применяться сценарий `sed`.

student.txt

ID: 111045
Имя: Роберт
Отдел: CSE
Партия: 35

ID: 111876
Имя: Джозеф
Отдел: BBA
Партия: 27

ID: 111346
Имя: Уильям
Отдел: CSE
Серия: 45

ID: 111654
Имя: Чарльз
Отдел: EEE
Партия: 41

ID: 111346
Имя: Джон
Отдел: CSE
Партия: 25

ID: 111746
Имя: Томас
Отдел: CSE
Партия: 15

Пример-4: Замена нескольких строк файла с помощью файла сценария `sed`

Создайте файл sed с именем replace.sed следующим содержимым для замены нескольких строк на основе шаблона поиска. Здесь слово ' CSE ‘Будет выполняться поиск в текстовом файле, и если совпадение существует, то он снова будет искать числа 35 и 15. Если второе совпадение существует в файле, то оно будет заменено числом 45.

replace.sed

/CSE/ {
п; п;
/35 год/ {
s/35 год/Четыре пять/;
p; d;
}
/пятнадцать/ {
s/пятнадцать/55/;
p; d;
}
}
п;

Выполните следующую команду, чтобы проверить существующее содержимое файла. «CSE» встречается в текстовом файле четыре раза. 35 и 15 существуют в двух местах.

$Котstudent.txt

Следующая команда заменит содержимое нескольких строк на основе сценария sed.

$sed -n -freplace.sed student.txt

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

Заключение

В этом руководстве были показаны различные способы замены нескольких строк или содержимого нескольких строк с помощью команды `sed`. В этом руководстве также показано, как сценарий `sed` может быть запущен из файла sed. Я надеюсь, что это руководство поможет читателю заменить несколько строк любого файла с помощью команды `sed`.