иметь файл журнала, который я хотел бы разбить на несколько файлов на основе контента

У меня есть файл журнала, который я хотел бы разбить на несколько файлов

Содержание

*** Configuration Database *** Logs *** Configuration Logs *** Query Logs . . and so on 

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

тело

 *** Configuration Database (Data/Logs) *** Logs (Data/Logs) *** Configuration Logs (Data/Logs) *** Query Logs (Data/Logs) 

В основном я хотел бы взять отладочный текстовый файл, запустить сценарий против него и разбить его на множество текстовых файлов, по одному для каждого раздела в Оглавлении, сохраняя оригинал неповрежденным. Поэтому в основном я бы имел debug.txt, Configuration Database.txt, Logs.txt и т. Д., Каждый из которых имел все данные в каждом разделе, вплоть до начала нового раздела. Любая помощь будет принята с благодарностью, так как это немного над моей головой 🙂

One Solution collect form web for “иметь файл журнала, который я хотел бы разбить на несколько файлов на основе контента”

Попробуй это:

 awk '/^[*][*][*] /{ if ($0 in seen) fname=$0; else seen[$0];} fname{print>fname}' file 

Как это работает

awk неявно читает файл по строкам. Для каждой прочитанной строки мы делаем следующее:

  • /^[*][*][*] /{ if ($0 in seen) fname=$0; else seen[$0];}

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

  • fname{print>fname}

    Если fname является непустым значением, напишите текущую строку в файл с именем fname .

  • Поиск имени файла в файле
  • Почему * соответствует, где нет цифр?
  • sed - применять изменения в нескольких файлах
  • Ищете способ переместить четные строки в начало нечетных строк
  • Как я могу извлечь данные из этой строки?
  • Изменение конфигурационных файлов с помощью awk / sed
  • Как вложить глобальные совпадения с sed?
  • Соответствие значений в столбцах
  • напечатать дату строки mail.log
  • Извлеките значения из имени файла и добавьте его в текстовый файл
  • Извлечение битрамов с помощью sed
  • Linux и Unix - лучшая ОС в мире.