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

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

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

  • Разделение строки до определенного места
  • ksh / bash Форматирование файлов через sed по файлу cat | команда sed
  • sed: многострочная замена блока конфигурации
  • vim - но с прокруткой, интерактивным текстом и копированием
  • Как подсчитать вхождения каждого слова, принадлежащего файлу, во все количество файлов `n`, переданных в качестве аргументов?
  • захватить текст из файла vtt
  • sed code для обработки текста
  • Использование CSV-строки в качестве параметров команды
  • Использование sed для цветного вывода из команды на Solaris
  • В POSIX sed период (точка) соответствует новой строке в многострочном пространстве шаблонов?
  • Свернуть несколько повторяющихся частей последовательных строк
  • Interesting Posts

    Помогите с диагностикой проблемы с замораживанием mdm / Cinnamon?

    Как удалить файлы из папки с более чем 60 файлами в unix?

    Mysql log confusion

    устаревшие пакетные перерывы yum для установки старшего JBoss

    Каков самый быстрый способ проверки пароля encfs?

    Команда tar не найдена на rhel6

    Имена файлов, содержащие пробелы, указаны неправильно.

    GCC (toolchain) для Ralink SoC – ELF не найден и синтаксическая ошибка

    Как я могу создать живой ISO для настраиваемой операционной системы?

    Горячая клавиша LXDE для запуска приложения или переключения на него, если он уже запущен

    Как я рекурсивно удаляю каталоги с помощью шаблона?

    У меня есть диск с ошибкой в ​​RAID1 btrfs, который пишет iffy, но читает в основном работу. Как его заменить?

    как установить nividia bumbulbee в linux mint 17.1 (корицу)?

    Как игнорировать ссылки grep из файла?

    Как заставить sshd прослушивать два порта, но ограничивать один из них одним адресом источника?

    Linux и Unix - лучшая ОС в мире.