содержание 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

  • временная метка, время модификации и время создания файла
  • хвост отображает весь файл, а затем изменяется только
  • Как перечислять все процессы linux, которые имели какую-либо сетевую активность в течение определенного периода времени (прошлое или будущее)?
  • как извлечь некоторые строки в файл данных по сравнению с другим файлом данных? (слияние)
  • как я перенаправляю вывод из файла tailf & grep в файл
  • захватить из текстового файла диапазон с использованием двух переменных в качестве начального и конечного параметров
  •  [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 для отображения ниже вывода?

  • Попытка заставить Ethernet работать в Linux
  • Сценарий оболочки для записи выбранных полей в одну строку
  • Есть ли способ показать только несанкционированные строки в текстовом файле / скрипте?
  • Как изменить максимальное число PID ядра?
  • init: /etc/init.conf: Не удается загрузить конфигурацию: нет такого файла или каталога
  • Как объединить строки и цифры
  • 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 
    Linux и Unix - лучшая ОС в мире.