使用 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
选项=],但对于每一行
我不知道该怎么做,我读过 diff
和 cmp
的人,也许我错过了什么,但它似乎不是一个现有的选项?
换句话说,我不知道如何在比较文件之前使用一些 sed
或 awk
操作来修改文件,因为 diff 需要一个文件或目录,不是命令的输出?当然除了创建临时文件,我希望这不是必需的
如果你能处理 Bash,你可以使用 process substitution:
$ diff <(cut -d \ -f 2 file1) <(cut -d \ -f 2 file2)
我有两个日志文件,每一行都按时间开始。我想比较除了这个时间部分的文件。
例如:
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
选项=],但对于每一行
我不知道该怎么做,我读过 diff
和 cmp
的人,也许我错过了什么,但它似乎不是一个现有的选项?
换句话说,我不知道如何在比较文件之前使用一些 sed
或 awk
操作来修改文件,因为 diff 需要一个文件或目录,不是命令的输出?当然除了创建临时文件,我希望这不是必需的
如果你能处理 Bash,你可以使用 process substitution:
$ diff <(cut -d \ -f 2 file1) <(cut -d \ -f 2 file2)