2016-08-15 3 views
-2

Я пытался найти способ делать сравнения файлов с grep, где у меня также есть вывод первого файла, который я пытаюсь сравнить.вывод grep для включения вывода искомого файла

У меня есть списки плагинов для Jenkins, и я пытаюсь быстро составить список различий между всеми экземплярами Jenkins. Результат командной строки 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 и loop через каждый файл, чтобы создать diff. Поскольку они по существу являются наборами, я полагаю, что если я действительно пытаюсь использовать diff, мне придется перебирать 1 против остальных, а затем 2 против остальных, затем 3, ect ... пока я не создам файл, который имеет все различий, но тогда мне нужно будет обработать этот файл, чтобы удалить дубликаты и изменить формат, чтобы быть более читаемым.

Есть ли способ заставить grep делать то, о чем я думаю, или лучший способ использовать diff для получения результата, который я пытаюсь получить?

+0

(Не конечно, почему задействован «grep» (в вашей строке grep отсутствует регулярное выражение.) Если вы просто хотите посмотреть, не были ли файлы не синхронизированы, вы можете сделать что-то вроде: sum output1.txt output2.txt output3.txt Если все контрольные суммы одинаковы, очень вероятно, что файлы одинаковы. Может быть, хороший первый p ass?) –

+0

Мне не нужно знать, являются ли файлы одинаковыми или нет, поскольку я знаю, что будут различия. Мне нужен список различий вместе с тем, что было отличным от исходного файла, который я сравниваю. grep на самом деле дает мне большую часть вывода, который я бы хотел, но не включает вывод output1.txt. Таким образом, я получаю различия, найденные в 2 и 3 от 1, но не от 1 от другой. – JonC

ответ

0

Не совсем уверены, о содержании файлов, которые вы хотите сравнить, но печатает «SDiff -s» разность два файлов, то здесь синтаксис:

$ sdiff -s file1 file2 

Надеется, что это помогает,