Incluindo milissegundos em um script?

0
            sudo hexdump -v -e '1/1 "%02x\n"' /dev/ttyUSB0 | awk '$1=="ed" {
            getline byte1
            getline byte2
            number = strtonum("0x" substr(byte2,2,1))+2
            data =" ::ED." byte1"."byte2
            while(number-->0)
            {getline byte; data = data"."byte}
            print data"."
            }' |  tr '[a-z]' '[A-Z]'| grep -v '^.....00'

Estou executando esse script pequeno e estou tentando anexar registro de data e hora a cada linha em milissegundos (que deve ser um valor em tempo real) e não um valor estático para todas as linhas. Estou esperando uma saída como essa,

:: 144146 :: ED.data

:: 144146 :: ED.data

:: 144146 :: ED.data

Em vez de 144146 em cada linha, devo obter o valor em milissegundos e os valores devem ser diferentes. Eu tenho um script python para o que estou procurando

tempo de importação

 def timestamp():
      now = time.time()
      localtime = time.localtime(now)
      milliseconds = '%03d' % int((now - int(now)) * 1000)
      return time.strftime('%Y%m%d%H%M%S', localtime) + milliseconds
      value = timestamp()
      print value

Existe alguma maneira que eu possa implementar o mesmo no meu script?

    
por RajuBhai 27.04.2016 / 20:57

1 resposta

1

É possível usar duas coisas não portáteis:

Com isso, você pode prefixar a entrada com timestamps assim:

awk '{"date +%Y%m%d%H%M%S%3N" |& getline timestamp;
      print timestamp,$0;
      close("date +%Y%m%d%H%M%S%3N")}'

(Observe que close é obrigatório e a string deve corresponder ao comando executado na linha 1. Consulte a resposta SO acima para obter detalhes.)

Incorporando isso ao seu programa, você terá:

sudo hexdump -v -e '1/1 "%02x\n"' /dev/ttyUSB0 | awk '$1=="ed" {
getline byte1
getline byte2
number = strtonum("0x" substr(byte2,2,1))+2
"date +%Y%m%d%H%M%S%3N" |& getline timestamp;
data = timestamp " ::ED." byte1"."byte2
close("date +%Y%m%d%H%M%S%3N")
while(number-->0)
{getline byte; data = data"."byte}
print data"."
}' |  tr '[a-z]' '[A-Z]'| grep -v '^.....00'
    
por 27.04.2016 / 21:30