У меня есть два больших текстовых файла, содержащих список зависимостей.
Первый файл содержит список зависимостей в проекте, отсортированном по сервисам, небольшой фрагмент файла выглядит так:
project_dependencies.txt:
------------- Dependencies for: Service1 -------------
org.springframework:spring-context:4.3.16.RELEASE
org.springframework:spring-aop:4.3.16.RELEASE
------------- Dependencies for: Service2 -------------
org.jongo:jongo:1.4.0
org.apache.commons:commons-lang3:3.4
javax.servlet:javax.servlet-api:3.1.0
------------- Dependencies for: Service3-------------
junit:junit:4.12
org.springframework:spring-context:4.3.16.RELEASE
...
Второй содержит список зависимостей, утвержденных моей компанией.Похоже, но без услуг.Вот фрагмент кода:
mitted_dependencies.txt:
...
com.google.code.findbugs:annotations:2.0.1
com.google.code.findbugs:bcel:2.0.1
com.google.code.findbugs:bcel-findbugs:6
com.google.code.findbugs:findbugs:3.0.1
com.google.code.findbugs:findbugs-ant:2.0.1
com.google.code.findbugs:jFormatString:2.0.1
com.google.code.findbugs:jsr305:2.0.1
com.google.code.gson:gson:2.3.1
com.google.code.p.arat:rat-lib:0.5.1
org.springframework:spring-context:4.3.16.RELEASE
...
Я ищу команду bash или даже скрипт awk
, который мог бы сравнить эти два файла и в основном вывестифайл, который очень похож на первый (project_dependencies.txt), но содержит только зависимости, которые находятся во втором файле, но все же отсортированы по сервису.Я пытался сделать это с grep
, но пока не нашел решения.Что я могу использовать?
Просто, чтобы прояснить ситуацию, приведен пример фрагмента из требуемого выходного файла:
...
------------- Dependencies for: Service3 -------------
org.springframework:spring-context:4.3.16.RELEASE
------------- Dependencies for: Service4 -------------
com.google.code.findbugs:bcel:2.0.1
com.google.code.findbugs:bcel-findbugs:6
------------- Dependencies for: Service5-------------
com.google.code.findbugs:jsr305:2.0.1
com.google.code.gson:gson:2.3.1
com.google.code.p.arat:rat-lib:0.5.1
...
Фактическое число, если зависимости для каждой службы не представлены в реальности.в этом фрагменте для краткости.Все, что я пытаюсь показать здесь, это то, что зависимости, которые не были в approved_dependencies.txt
, были удалены из исходного списка и что продолжение служб (в данном случае Service4 и service5) содержит только зависимости из утвержденного фрагмента зависимостей.
Пожалуйста, дайте мне знать, если я что-то пропустил, был слишком двусмысленным или нуждался в каких-либо пояснениях в комментариях.