デコードされたバイナリデータから生成されている2つのログファイルがあります。デコーダーは少し異なります、そして私は出力の違いを分離しようとしています。これを行うために、2つのログファイルを比較しています。これは、タイムスタンプが行ごとに異なることを除けば、かなりうまく機能します。何らかの理由で、タイムスタンプの違いは関係ないので、diffはそれらを無視したいと思います。
ログファイルは特定の形式に従っているため、タイムスタンプを無視するために、各行の最後の最大40文字を単純に除外できます。例:
A行目:
[T9] | ENTRY NAME varA = 0000012B varB = 00000000 | 000015.508.107.113s | file.cpp :738
行B:
[T9] | ENTRY NAME varA = 0000012B varB = 00000000 | 000015.508.107.163s | file.cpp :738
私の場合、これらの行は同一として扱われる必要があります。
各行の最初のn文字のみを含めるように、または各行の最後のm文字を除外するようにdiffに指示するにはどうすればよいですか?
Bashでは、プロセス置換を使用できます。
最後の40文字を削除するには、次を使用できます
diff <(sed 's/.\{40\}$//' file1) \
<(sed 's/.\{40\}$//' file1)
最初の40を選択するには、
cut -c1-40 file