Напишите программу, которая находит фразу и выводит ее на печать.

Напишите программу, которая находит фразу и выводит ее на печать.

Мне нужно написать скрипт оболочки, который находит фразу "Candy Land" и выводит 10 строк, окружающих строку, где это слово найдено. Предположим, что оно найдено только один раз.

Я не знаю, что имеется в виду под программой оболочки и выводом 10 строк вокруг этого слова. Возможно, с использованием head/tail.

Я знаю, что с помощью grep можно найти фразу, выполнив следующее:

grep 'Candy Land' file

Но я не думаю, что это то, что я должен делать.

решение1

У Grep есть несколько флагов, например, -Aдля отображения числовой строки после совпадения и -Bдля отображения числовых строк до совпадения. Оба флага ожидают число, за которым следует флаг.

Также можно использовать флаг -C, который объединяет оба варианта, чтобы получить одну линию и до, и после.

Например,

grep -A 1 -B 1 'Candy Land' file

или

grep -C 1 'Candy Land' file

Связанный контент