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

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

Содержание

*** 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 .

  • Удалить ведущее 0 из определенного поля
  • Как удалить все вхождения списка слов из текстового файла?
  • Разделить файл журнала по временному диапазону
  • Как сделать следующее форматирование с помощью сценария sed или awk или bash на linux
  • Удалить символ авторского права
  • Как удалить все неупорядоченные строки из текстового файла?
  • Соответствие строки EXACT в файле и обновлении IP-адреса
  • Эффективное удаление заголовка на месте для больших файлов с помощью sed?
  • Как использовать sed, awk или grep для удаления определенного шаблона, но все остальное
  • sed insert в начале нескольких файлов не работает
  • Помогите вставить новую строку текста после сопоставления строки текста (sed)?
  • Linux и Unix - лучшая ОС в мире.