содержание grep между двумя стартовыми скобками

Ниже представлен вывод файла, который я хочу получить

[1] RsyncCommand: 0 Number of files: 18 Number of files transferred: 0 Total file size: 24.01M bytes Total transferred file size: 0 bytes Literal data: 0 bytes Matched data: 0 bytes File list size: 354 File list generation time: 0.002 seconds File list transfer time: 0.000 seconds Total bytes sent: 424 Total bytes received: 69 total size is 24.01M speedup is 48701.73 (DRY RUN) [2] RsyncCommand: 0 Number of files: 21 Number of files transferred: 0 Total file size: 5.22M bytes Total transferred file size: 0 bytes Literal data: 0 bytes Matched data: 0 bytes File list size: 507 File list generation time: 0.001 seconds File list transfer time: 0.000 seconds Total bytes sent: 586 Total bytes received: 78 total size is 5.22M speedup is 7862.54 (DRY RUN) [3] RsyncCommand: 0 Number of files: 54 Number of files transferred: 0 Total file size: 63.67M bytes Total transferred file size: 0 bytes Literal data: 0 bytes Matched data: 0 bytes File list size: 1.56K File list generation time: 0.002 seconds File list transfer time: 0.000 seconds Total bytes sent: 1.75K Total bytes received: 185 total size is 63.67M speedup is 32988.24 (DRY RUN) 

Я хочу вывод, если я grep 2

 [2] RsyncCommand: 0 Number of files: 21 Number of files transferred: 0 Total file size: 5.22M bytes Total transferred file size: 0 bytes Literal data: 0 bytes Matched data: 0 bytes File list size: 507 File list generation time: 0.001 seconds File list transfer time: 0.000 seconds Total bytes sent: 586 Total bytes received: 78 total size is 5.22M speedup is 7862.54 (DRY RUN) 

Как использовать команду grep для отображения ниже вывода?

One Solution collect form web for “содержание grep между двумя стартовыми скобками”

Вы можете использовать grep с -A . Что-то вроде:

 $ grep -A 13 '^\[2\]' inputfile.txt 

-A указывает количество строк, которые вы хотите включить после матча.

Но я думаю, что было бы лучше использовать sed в этом случае:

 $ sed -n '/^\[2\]/,/^$/p' inputfile.txt 

Это напечатает все между [2] и пустой строкой.

То же самое с использованием awk :

 $ awk -v RS='' -v ORS='\n\n' '/^\[2\]/' inputfile.txt 
  • Получение двух совпадений из повторяющегося шаблона
  • Термин поиска труб из буфера обмена (не имя файла) в grep для поиска папки
  • Удалить комментарии в файле C
  • Греп от конца файла до начала
  • поиск файлов с несколькими строками (все включено, а не один или другой) и номера строк печати
  • Сколько текста grep / egrep потребляет каждый раз?
  • Как исключить тип файла в find, exec и grep?
  • найти последний файл, созданный в папке и grep-содержимом
  • Извлекать подстроки из каждой строки. Эти подстроки разделены запятыми, формат «name = value»
  • синтаксис grep для поиска строк с одиночными кавычками?
  • как grep для пакетов на основе несжатого размера файла?
  • Почему grepping с цветом ничего не возвращает?
  • Linux и Unix - лучшая ОС в мире.