我覺得自己的努力,用grep,是相當接近。基於
就在這個答案演示
結束引用這兩個文件(一個由MCVE你本來不錯...),我建議把三個列表,使用:
- 正面:
grep -of Ids.txt Logfile.txt | sort -u
- 負一:
grep -vf Ids.txt Logfile.txt | grep -o "LogID: .*" | sort -u
- 負b:
grep -o "LogID: .*" Logfile.txt >InIDs.txt && grep -vf InIDs.txt IDs.txt | sort -u
注:
- 如果系統中有兩個「排序」程序,例如Windows和GNU,確保給予完整路徑二進制使用GNU版本,即;窗口排序不知道
-u
選項。
- 這些文件有UNIX行結尾(只有LF,而不是CRLF),這很重要。
- 假設:字符串「LOGID:DDDDDD」僅發生在線路
結束(這個假設可以稍微放鬆,也許取出,用更復雜的正則表達式)
環境IDs.txt
(注意到載於LOGFILE.TXT的1005539,1005540 不):
LogID: 1005534
LogID: 1005535
LogID: 1005536
LogID: 1005537
LogID: 1005538
LogID: 1005539
LogID: 1005540
環境LOGFILE.TXT
(注意1005548 不所含的ID。TXT和具有相同ID的行):
blabla LogID: 1005534
bloblo LogID: 1005536
blaablaa LogID: 1005534
blublu LogID: 1005537
blibli LogID: 1005548
bluubluu LogID: 1005537
bleble LogID: 1005538
輸出,陽性:
LogID: 1005534
LogID: 1005536
LogID: 1005537
LogID: 1005538
輸出,負一
(那些在LOGFILE.TXT但不是在IDs.txt):
LogID: 1005548
輸出,負b
(那些在IDs.txt但不是在LOGFILE.TXT):
LogID: 1005535
LogID: 1005539
LogID: 1005540
我得到了下面的命令'grep的-q「LOGID:1005534」 LOGFILE.TXT &&回聲「是」 ||回聲「不」。但是如何使用我擁有的所有log-id迭代命令。 – sady
堆棧溢出是一個地方,如果遇到*特定問題*,可以請求其他人幫助您使程序正常工作。對於我們來說,你需要編寫一個程序。預計您至少會付出努力,而不是僅僅在此傾銷您的需求,並等待解決方案彈出。 – Borodin
請提供您的文本信息作爲問題中的文本,而不是圖片。 – Yunnosch