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

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

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 может помочь.

  • сравнить файлы по строкам и создать новое одно bash-программирование
  • Bash перебирает список строк
  • Извлечение URL из неформатированного текста
  • Соедините каждую строку файла с определенной переменной во второй команде
  • Как удалить часть строки
  • Усеченный результат, возвращаемый JOIN
  • Искать текст в Linux, но не отображать полную строку в результатах
  • Как захватить содержимое строки до определенной строки?
  • Как ускорить работу скрипта на основе поиска grep?
  • Использование CSV-строки в качестве параметров команды
  • Сокращение порядка и вывод текста
  • Linux и Unix - лучшая ОС в мире.