2016-08-15 44 views
-2

我一直在试图找到一种方法来与grep比较文件,其中我也有我想比较的第一个文件的输出。grep的输出包括搜索文件的输出

我拥有的文件是詹金斯的插件列表,我试图快速编译所有詹金斯实例之间的差异列表。 Jenkins命令行的输出给出了短名称,长名称,插件版本。所以格式是这样的:

SupPlugin SuperPlugin 1.6 (1.8) 

我有大约8个Jenkins实例,并且可以提取插件列表。我需要做的是找到安装插件的不一致性。我一直在用grep和diff进行尝试,试图提取我需要的东西并存储它,以便我可以查看它并根据需要更新服务器。

grep命令我是

grep -v output1.txt output2.txt output3.txt > list.txt 

我有这个的问题是,虽然这会给出1的输出比2和1比3,它不输出什么1例。我想在grep中找到当前行的输出,因此基本上我想从1以及2和3中得到一个列表,以便我可以比较版本。

我也一直在尝试使用diff和循环遍历每个文件来创建diff。由于这些基本上是集合,我想如果我最终试图使用差异,我将不得不循环1对其余的,然后2对其余的,然后3,等...直到我创建了一个文件,具有所有的差异,但接下来我需要处理该文件以删除重复项并将格式更改为更易读。

有没有办法让grep去做我在想什么,或更好的方式来使用diff来获得我想要得到的结果?

+0

(不确定为什么涉及“grep”(您的grep行缺少正则表达式)。如果您只想查看文件是否不同步,则可以执行如下操作: sum output1.txt output2.txt output3.txt 如果所有的校验和都是一样的,那么很可能文件是相同的。可能是一个好的第一个p屁股?) –

+0

我不需要知道文件是否相同,因为我知道会有差异。我需要的是与我正在比较的原始文件不同的列表。 grep实际上给了我大部分我想要的输出,但是不包含output1.txt的输出。所以我从1中得到2和3中的差异,但是不同于1中的差异。 – JonC

回答

0

不是真的肯定要比较,但“那么sdiff -s”版画的两个文件,这里的语法的差异文件的内容:

$ sdiff -s file1 file2 

希望这有助于