我觉得自己的努力,用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