The*_*Bat 4 linux bash diff command-line
我有两个从解码的二进制数据生成的日志文件。解码器略有不同,我试图隔离输出中的差异。为此,我比较了两个日志文件,除了每行的时间戳不同之外,它运行得很好。由于某些原因,时间戳的差异不相关,所以我希望 diff 忽略它们。
因为日志文件遵循特定的格式,所以我可以简单地从每行中排除最后约 40 个字符以忽略时间戳。前任:
A线:
[T9] | ENTRY NAME varA = 0000012B varB = 00000000 | 000015.508.107.113s | file.cpp :738
Run Code Online (Sandbox Code Playgroud)
B线:
[T9] | ENTRY NAME varA = 0000012B varB = 00000000 | 000015.508.107.163s | file.cpp :738
Run Code Online (Sandbox Code Playgroud)
在我的情况下,这些行应该被视为相同。
如何告诉 diff 只包含每行的前 n 个字符,或排除每行的最后 m 个字符?
在 bash 中,您可以使用进程替换。
要删除最后 40 个字符,您可以使用
diff <(sed 's/.\{40\}$//' file1) \
<(sed 's/.\{40\}$//' file2)
Run Code Online (Sandbox Code Playgroud)
要选择前 40 个字符,您可以使用
cut -c1-40 file
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2864 次 |
最近记录: |