给定一个 XML 文件,我正在编写 Bash 来解析它,但需要有关标题和破坏字符串的帮助吗?这是我到目前为止所拥有的:
<dbg><h><d t="2013/08/11 (Aug) (Sun) 00:56:23.491" m="CANLogging" f="../../../ApplCtrl/CANMessageLoger.cpp" l="120" fnc="void CANMessageLoger::WriteToLog(uint16_t, uint16_t, uint16_t, uint16_t, uint8_t, uint8_t*)" lvl="DBG_EVENT" thrd=""/></h><b> d2 ff f7 0c 10 27 ff ff ff ff ff </b></dbg>
grep CANLogging $1 | awk '{printf("%s %s",$2,$5); i=18; while(i<NF) { printf(" %s", $i); ++i} printf("\n");}' | awk -F "\"" '{print $2 " " $3}' > CAN
由 grep 生成的以下内容大约有 100,000 行:
2013/08/11 00:56:23.491 d2 ff f7 0c 10 27 ff ff ff ff ff
但我需要在输出文件中添加一个标题:
Date Time source Format Specific data
并且对于要解析和更改的日期字符串为:
13.08.11 00:56:23.491 d2 ff f7 0c 10 27 ff ff ff ff ff
使用 svante,我得到:
grep CANLogging $1 | awk '{printf("%s %s",$2,$5); i=18; while(i<NF) { printf(" %s", $i); ++i} printf("\n");}' | awk -F "\"" 'BEGIN{print "Date Time source Format Specific data"}{print $2 " " $3}' | sed 's/^\([0-9]\{2\}\)\([0-9]\{2\}\)\/\([0-9]\{2\}\)\//\2.\3./' > CAN