使用 shell 命令比较除每行的第一个字节之外的两个文件

compare two files except first bytes of each lines with shell command

我有两个日志文件,每一行都按时间开始。我想比较除了这个时间部分的文件。

例如:

file1.og

[20220201_133108] abc
[20220201_133108] defg
[20220201_133108] hi
[20220201_133108] jkl

file2.og

[20220202_172431] abc
[20220202_172431] defg
[20220202_172431] hi
[20220202_172431] jkl

它们是相同的,除了时间部分,所以想使用类似 diff [option to skip first bytes] file1.log file2.log 的东西来输出它们是相同的,有点像 [=15] 的 -i 选项=],但对于每一行

我不知道该怎么做,我读过 diffcmp 的人,也许我错过了什么,但它似乎不是一个现有的选项?

换句话说,我不知道如何在比较文件之前使用一些 sedawk 操作来修改文件,因为 diff 需要一个文件或目录,不是命令的输出?当然除了创建临时文件,我希望这不是必需的

如果你能处理 Bash,你可以使用 process substitution:

$ diff <(cut -d \  -f 2 file1) <(cut -d \  -f 2 file2)