Показать строки до и после матча с помощью Grep

Show Lines Before After Match Via Grep



Grep широко используется в системах Linux при работе с некоторыми файлами, поиске определенного шаблона и многом другом. На этот раз мы используем команду grep для отображения строк до и после совпадающего ключевого слова, используемого в каком-то конкретном файле. Для этой цели мы будем использовать флаг -A, -B и, -C в нашем руководстве. Итак, вам нужно выполнить каждый шаг для лучшего понимания. Убедитесь, что у вас установлена ​​система Ubuntu 20.04 Linux.

Во-первых, вам нужно открыть терминал командной строки Linux, чтобы начать работу с grep. В настоящее время вы находитесь в домашнем каталоге своей системы Ubuntu сразу после открытия терминала командной строки. Итак, попробуйте перечислить все файлы и папки в домашнем каталоге вашей системы Linux, используя приведенную ниже команду ls, и вы получите все. Как видите, у нас есть несколько текстовых файлов и несколько папок, перечисленных в нем.







ls



Пример 01: Использование ‘-A’ и ‘-B’

Из показанных выше текстовых файлов мы рассмотрим некоторые из них и попробуем применить к ним команду grep. Давайте сначала откроем текстовый файл one.txt, используя популярную команду cat, как показано ниже:



$Котone.txt





Сначала мы увидим совпадения некоторых конкретных слов в этом текстовом файле, используя команду grep, как показано ниже. Мы ищем слово we в текстовом файле one.txt с помощью инструкции grep. Вывод показывает две строки из текстового файла, в которых есть мы.

$рукояткамы one.txt



Итак, в этом примере мы будем показывать строки до и после совпадения определенного слова в некоторых текстовых файлах. Итак, используя тот же текстовый файл one.txt, мы сопоставили слово we, отображая 3 строки перед ним, как показано ниже. Флаг -B означает «До». Выходные данные показывают только 2 строки перед определенной строкой слова, потому что в файле нет дополнительных строк перед строкой определенного слова. Он также показывает те строки, в которых присутствует это конкретное слово.

$рукоятка–B3мы one.txt

Давайте воспользуемся тем же ключевым словом we из этого файла, чтобы отобразить 3 строки после строки, в которой есть слово we. Флаг -A представляет После. Вывод снова показывает только 2 строки, потому что в файле не больше строк.

$рукоятка3мы one.txt

Итак, давайте использовать новое ключевое слово для сопоставления и отображать строки или строки до и после строки, в которой оно находится. Итак, мы использовали слово может быть сопоставлено. Номера строк в этом случае такие же. 3 строки после совпадающего слова могут быть отображены ниже с помощью команды grep.

$рукоятка3может one.txt

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

$рукоятка–B3может one.txt

Пример 02: Использование ‘-A’ и ‘-B’

Давайте возьмем еще один текстовый файл, two.txt, из домашнего каталога и отобразим его содержимое с помощью приведенной ниже команды cat.

$Котtwo.txt

Давайте с помощью команды grep отобразим 5 строк перед словом Most из файла two.txt. Выходные данные показывают 5 строк перед строкой, содержащей определенное слово.

$рукоятка–B5Самый two.txt

Команда grep для отображения 5 строк после слова Most из текстового файла two.txt приведена ниже.

$рукоятка5Самый two.txt

Давайте изменим ключевое слово для поиска. На этот раз мы будем использовать ключевое слово для поиска. Отобразить 2 строки перед словом из текстового файла two.txt можно с помощью приведенной ниже команды grep. Вывод показывает две строки для ключевого слова of, потому что оно встречается в файле дважды. Таким образом, вывод содержит более двух строк.

$рукоятка–B2из two.txt

Теперь отображение двух строк файла two.txt после строки, содержащей ключевое слово of, может быть выполнено с помощью следующей команды. На выходе снова отображается более 2 строк.

$рукоятка2из two.txt

Пример 03: Использование ‘-C’

Другой флаг, -C, использовался для отображения строк до и после совпадающего слова. Давайте отобразим содержимое файла one.txt с помощью команды cat.

$Котone.txt

В качестве ключевого слова мы выбираем общество. Приведенная ниже команда grep отобразит 2 строки до и 2 строки после строки, содержащей слово «общество». Выходные данные показывают одну строку перед определенной строкой слов и 2 строки после нее.

$рукоятка–C2общество one.txt

Давайте посмотрим содержимое файла two.txt с помощью приведенной ниже команды cat.

$Котtwo.txt

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

$рукоятка–C2стихи two.txt

Давайте воспользуемся еще одним ключевым словом из файла two.txt для сопоставления. На этот раз мы потребляем природу как ключевое слово. Итак, попробуйте следующую команду, используя -C в качестве флага, имеющего характер ключевого слова из файла two.txt. На этот раз вывод содержит более двух строк. Поскольку файл содержит слово 'природа' более одного раза, это и есть причина. Ключевое слово nature, которое идет первым, имеет две строки до и две строки после него. В то время как второе соответствует тому же ключевому слову, у природы есть две строки перед ним, но после него нет строк, потому что он находится в последней строке файла.

$рукоятка–C2стихи two.txt

Заключение

Нам удалось отобразить строки до и после определенного слова при использовании инструкции grep.