Сохраните часть терминального вывода

Я использую Ubuntu для получения вывода от устройства BLE, и в терминале я получаю непрерывный поток значений. Единственная проблема состоит в том, что им предшествует бесполезная строка (я читаю характеристики устройства BLE, таким образом, у них есть "Дескриптор уведомления = 0x000c значение: FF FF"). Мне только нужна шестнадцатеричная строка в конце для моих данных.

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

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

1
задан 1 July 2016 в 20:46

2 ответа

Вот несколько опций, которые можно попробовать:

yourcommand | sed 's/.*: //' > file.dat

yourcommand | cut -d: -f2 > file.dat

yourcommand | awk -F: '{print $2}' > file.dat

yourcommand | grep -Eo '[[:xdigit:]]{2} [[:xdigit:]]{2} > file.dat
1
ответ дан 7 December 2019 в 15:52

Вы могли передать вывод по каналу на строку канавка awk как следующее:

echo "Notification handle = 0x000c value: FF FF" | awk '{print $6, $7}'

, который приведет к этому выводу:

FF FF

другой канал позволил бы Вам помещать это в файл путем добавления

echo "Notification handle = 0x000c value: FF FF" | awk '{print $6, $7}' | tee -a values.dat

, Это оставит Вас с файлом, содержащим всегда двухбайтовое шестнадцатеричное значение на строку, от которого Вы могли затем идти дальше.

0
ответ дан 7 December 2019 в 15:52

Другие вопросы по тегам:

Похожие вопросы: