在unix中找到两个文件之间最接近的匹配

Find the closest match between two files in unix

作为初学者,我正在 shell 脚本中寻找解决方案,

我有 file1,内容如下:

timestamp6 serverName A: Session3: session closed for user grpname

timestamp5 serverName A: Session3: session opened for user grpname by jack

timestamp4 serverName A: Session2: session closed for user grpname

timestamp3 serverName A: Session2: session opened for user grpname by john

timestamp2 serverName A: Session1: session closed for user grpname

timestamp1 serverName A: Session1: session opened for user grpname by matt

file2 以及文件名和修改后的时间戳。

Filename1 timestamp_x

Filename2 timestamp_y

Filename3 timestamp_z

我正在寻找 shell 脚本解决方案,它可以告诉两个文件之间时间戳的最接近匹配。

像 timestamp_x 和 timestamp_y 介于 timestamp_1 和 timestamp_2 之间。

谢谢

如果您的时间戳排序(可以使用 -M)。对 file1 和 file2 的内容进行排序,交换两个字段的顺序。然后使用带有上下文选项的 grep 来查看出现的内容 before/after:

(cat file1; sed 's/\(.*\) \(.*\)/ /' file2) | sort | egrep -C1 'timestamp_[x-z]'