我正在尝试重新格式化串口输入,它由两个整数用逗号隔开组成(从Arduino发送)。
这是我得到的结果(包含我的当地日期):
1,2
3,4
0,0
0,1
等等,您需要将日期添加到每行后面,并用制表符分隔所有内容。这是我目前的代码:
cat /dev/cu.usbmodem3d11 | awk 'BEGIN {RS=","};{printf "%i\t%i\t%s",$1,$2,system("date")}'
这是我得到的结果(包含我的当地日期):
1 2 0Mer 26 fév 2014 22:09:20 EST
3 4 0Mer 26 fév 2014 22:09:20 EST
0 0 0Mer 26 fév 2014 22:09:20 EST
0 1 0Mer 26 fév 2014 22:09:20 EST
为什么我的日期字段前面会多出一个“0”?抱歉,我是新手,不太懂。
编辑 这段代码解决了我的问题。感谢所有帮助过我的人。
awk 'BEGIN {FS=","};{system("date")|getline myDate;printf "%i\t%i\t%s",$1, $2, myDate}' /dev/cu.usbmodem3d11
我不清楚原因,但为了让日期持续更新并记录接收数据的时间,我必须在上述代码中使用 system("date")
而不是仅使用 "date"
。
cat
,比如awk
。例如:awk 'code' /dev/cu.usbmodem3d11
。 - Jotne