簡體   English   中英

在 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 和上下文選項來查看之前/之后的內容:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM