Файлы с изменением хвоста

Я пытаюсь добавить файл, наблюдая за данными, которые постоянно добавляют каждую секунду, а данные о каналах – к новым файлам, которые будут обрабатывать их позже. с помощью

tail -f 'data file' >> 'destination file' 

Но некоторые, как некоторые строки дублируются, поэтому я делаю это.

 tail -f 'data file' | awk '!seen[$0]++' | >> 'destination file' 

Это кажется прекрасным, но линия будет разделена на некоторое время, поэтому, я думаю, мне нужно буферизировать всю линию, чтобы добиться этого. Но это хороший способ сделать это, или я должен делать это по-другому?

 tail -f 'data file' | grep --line-buffered -E '^.*$' | awk '!seen[$0++]' 

Полный пример данных

 [9/10/17 14:21:09] Data=[xxx|yyy|zzz] 

Пример разделения

 [9/1 [9/10/17 14:21:09] Data=[xx 

что-то вроде этого. Это происходит после того, как я передаю данные с tail на awk . Поэтому я перемещаю grep до конца команды, и это работа. Но данные будут храниться в буфере вместо этого, если он слишком мал.

 tail -f 'data file' | awk '!seen[$0++]' | grep --line-buffered -E '^.*$' 

Спасибо за совет и ответ!

One Solution collect form web for “Файлы с изменением хвоста”

Но некоторые, как какая-то строка дублируется

Если дубликаты являются смежными строками, вы можете попробовать uniq :

 $ tail -f <file> | uniq 

В быстрой проверке это работало так, как ожидалось, ожидая полной строки перед записью вывода.

Если дублирующиеся строки разбросаны по файлу, добавление uniq в канал между tail и awk может помочь.

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