在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]'
作为初学者,我正在 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]'