Печать Файла Между Двух Строк с SED и AWK

Из данной заметки Вы узнаете как вывести строки между двух паттернов в bash.

Я покажу как с помощью sed и awk найти и напечатать содержимое файла между двух паттернов.

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

I Love Linux
***** BEGIN *****
BASH is awesome
BASH is awesome
***** END *****
I Love Linux

Допустим нам необходимо напечатать только текст, который находится между строк, содержащих слова ‘BEGIN’ и ‘END’.

Печать Файла Между Двух Строк с SED

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

Синтаксис:

sed -n '/StartPattern/,/EndPattern/p' FileName
Опции Описание
-n, —quiet, —silent Отключить автоматический вывод
p Распечатать текущую область шаблона

Пример:

sed -n '/BEGIN/,/END/p' info.txt
***** BEGIN *****
BASH is awesome
BASH is awesome
***** END *****

Печать Файла Между Двух Строк с AWK

Так же, как и для команды sed, мы указываем начальный и конечный шаблоны с помощью команды awk.

Синтаксис:

awk '/StartPattern/,/EndPattern/' FileName

Пример:

awk '/BEGIN/,/END/' info.txt
***** BEGIN *****
BASH is awesome
BASH is awesome
***** END *****

One Reply to “Печать Файла Между Двух Строк с SED и AWK”

  1. Is it possible to capture multiple occurrances and put each occurrance in separate file ??

Добавить комментарий