毎度、巨大なCANのログファイルをエディタで開いて、正規表現でgrep検索して、特定フレームを抽出するのが面倒だったので、指定したフレームだけを引っこ抜くスクリプトを作った。(ログファイルの形式次第では変更が必要かもしれない。)
そのまま実行しても標準出力として出力されるだけなのでリダイレクトしてください。
まぁ、Qiita見てるような方は既に自己解決していると思いますがw
#!/bin/bash# CANLogファイルを指定FILE=# 抽出したいフレームを指定FRAMES=("""")cat$FILE | while read line;do
for frame in"${FRAMES[@]}";do
if[[$line=~ $frame]];then
echo$linefi
done
done
参考までに、CANログって大体こんな感じ。(適当にネットから拾ってきたものです。)
0.003586 1 F9 Rx d 8 00 DA 40 33 D0 63 FF 1C Length = 228000 BitCount = 118 ID = 249
0.003738 1 1CF Rx d 3 00 00 05 Length = 144000 BitCount = 76 ID = 463
0.003976 1 711 Rx d 8 00 23 00 7E FF EB FC 6F Length = 230000 BitCount = 119 ID = 1809
0.004148 1 1D0 Rx d 4 00 00 00 00 Length = 164000 BitCount = 86 ID = 464
0.004382 1 C1 Rx d 8 30 14 F6 08 32 B4 F7 70 Length = 226000 BitCount = 117 ID = 193
0.004615 1 C5 Rx d 8 31 27 F8 44 32 B0 F8 5C Length = 224121 BitCount = 116 ID = 197
0.004825 1 BE Rx d 6 00 00 4D 00 00 00 Length = 202242 BitCount = 105 ID = 190
0.005051 1 D1 Rx d 7 80 00 BF FE 00 FE 00 Length = 218121 BitCount = 113 ID = 209
0.005292 1 C9 Rx d 8 80 2C 5A 60 00 00 18 00 Length = 232242 BitCount = 120 ID = 201
0.005538 1 1C8 Rx d 8 80 00 00 00 FF FE 3F FE Length = 238121 BitCount = 123 ID = 456
0.005774 1 18E Rx d 8 00 00 00 84 78 46 08 45 Length = 228242 BitCount = 118 ID = 398