2

Я получаю доступ к устройству последовательного измерения через screen /dev/tty.usbserial 9600 . Во время измерения устройство выдает свои данные n раз в секунду в одной строке. Как я могу добавить временную метку в каждую строку (или каждые несколько строк, если она слишком сильно замедляет журнал)?

Я на OSX 10.8.2 и использую Terminal.app в качестве моего терминала.

1 ответ1

2

Я не мог найти способ, чтобы позволить печатать метки времени. Вместо этого создание файла журнала экрана и печать его с помощью awk работает хорошо!

1. Создайте (или отредактируйте) ~/.screenrc, чтобы экран мог создать файл журнала.

Добавьте конфигурацию регистрации в .screenrc (файл конфигурации экрана) в вашем домашнем каталоге.

logfile "/path/to/log/file" # Specify log file name with absolute path.
logfile flush 1
deflog on

2. Стартовый экран

$ screen /dev/tty.usbserial 9600 -L

Затем экран начинает создавать файл журнала. (Есть несколько других способов создания файлов журналов.)

3. Распечатать файл с хвостом + awk

Запустите эту команду оболочки в другом окне терминала.

$ tail -f screen.log | awk '{ print strftime("%H:%M:%S"), $0; fflush(); }'

Он печатает файл журнала с отметками времени!

15:41:27 xxx
15:41:28 xxx
15:41:29 xxx
15:41:30 xxx
15:41:31 xxx

Если вы хотите распечатать журнал с метками времени как для стандартного вывода, так и для файла, пожалуйста, передайте его в команду tee.

$ tail -f /path/to/log/file | awk '{print strftime("%H:%M:%S"),$0; fflush();}' | tee /path/to/another/file

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .