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
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.
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
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.