Salva parte de uma saída de terminal

1

Estou usando o Ubuntu para obter a saída de um dispositivo BLE e, no terminal, recebo um fluxo contínuo de valores. O único problema é que eles são precedidos por uma string inútil (estou lendo as características do dispositivo BLE para que eles tenham um "identificador de notificação = valor 0x000c: FF FF"). Eu só preciso da string hexadecimal no final dos meus dados.

Atualmente eu registro a janela de saída do terminal usando o script e, em seguida, a partir do arquivo de texto criado, eu extraio os valores hexadecimais e os converto em voltagens que eu, então, plotei. No entanto, eu tenho que realmente executar esses dois comandos, então estou efetivamente fazendo capturas de tela dos dados.

Eu estou querendo saber se havia alguma maneira de apenas gravar os valores hexadecimais em um arquivo .dat e manipulá-los, porque então eu posso realmente plotar os dados em tempo real. Se vocês conhecem alguma alternativa para obter um gráfico dos dados em tempo real, me avisem.

    
por Narin Harv 01.07.2016 / 19:46

2 respostas

1

Aqui estão algumas opções que você pode experimentar:

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

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

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

yourcommand | grep -Eo '[[:xdigit:]]{2} [[:xdigit:]]{2}$' > file.dat
    
por steeldriver 01.07.2016 / 20:20
0

Você pode enviar a saída por linha pelo awk da seguinte forma:

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

que resultará nessa saída:

FF FF

outro canal permitiria colocar isso em um arquivo anexando

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

Isso deixará você com um arquivo contendo sempre um valor hexadecimal de dois bytes por linha a partir do qual você poderá seguir em frente.

    
por Videonauth 01.07.2016 / 19:53