Чтение последних 2 строк файла .log через Matlab - PullRequest
0 голосов
/ 14 июля 2020

Проблема, которую я пытаюсь решить, заключается в следующем:

У меня есть файл .log, который обновляется каждые x секунд (интервал, который я могу изменить), с обновленной информацией о состоянии из части испытательное оборудование. Через каждый интервал в файл .log добавляется еще одна строка с обновленной информацией. Моя цель - сделать так, чтобы самую последнюю информацию о состоянии (последние две строки файла .log) можно было легко просматривать в Matlab.

Вот пример того, как выглядит каждое обновление, в случае, если это актуально ( одна строка текста):

Что я пробовал:

Я использовал команду readtable (показанную ниже) для просмотра информации в файле .log, но это дает мне весь .log при каждом вызове функции, когда мне нужны только последние две строки.

data = readtable('FileName.log','FileType','text')

Я знаю, что это было бы проще, если бы я работал с файлом .csv или .xlsx, но тестовое оборудование обновляет только файл .log, поэтому я не могу просто изменить тип файла, поскольку в этом случае он не получит обновлений.

Любые советы приветствуются.

1 Ответ

2 голосов
/ 14 июля 2020

Если файл .log находится в текстовом формате (как я предполагаю на основе вашего фрагмента кода), вы можете получить последние 2 строки файла, используя следующую системную команду в MATLAB:

[status,output] = system(['tail -n 2 ', path]);

Пожалуйста, имейте в виду, что для этого требуется, чтобы была доступна команда tail, которая по умолчанию недоступна в windows - однако вы можете обойти это, установив пакет, содержащий tail команда, например Cygwin .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...