Удалить определенные файлы из несвязанных различий
У меня есть патч для применения на устаревшей кодовой базе. Есть много файлов с именем pom.xml
есть изменения, которые нужно пропустить. Как мне удалить их из патча?
sed '/^diff --git .*pom.xml$/,/^diff --git/d'
удаляет одну дополнительную строку в конце (которая необходима для дальнейшей обработки).
Мне, вероятно, нужно решение для удаления линий между двумя шаблонами, включая первый шаблон и исключая второй. Я ограничен MSYS, поэтому доступны только команды Windows, sed и mawk.
Вот пример ввода. Там есть три записи, вторая должна быть удалена.
diff --git a/core/contexts/org.eclipse.rcptt.ctx.debug/META-INF/MANIFEST.MF b/core/contexts/org.eclipse.rcptt.ctx.debug/META-INF/MANIFEST.MF
index a02c3f0..b74197f 100644
--- a/core/contexts/org.eclipse.rcptt.ctx.debug/META-INF/MANIFEST.MF
+++ b/core/contexts/org.eclipse.rcptt.ctx.debug/META-INF/MANIFEST.MF
@@ -2,13 +2,13 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Q7 Debug
Bundle-SymbolicName: org.eclipse.rcptt.ctx.debug;singleton:=true
-Bundle-Version: 1.5.0.qualifier
+Bundle-Version: 1.5.3.qualifier
Bundle-ClassPath: .
Bundle-Vendor: Eclipse RCP Testing Tool Project
Bundle-Localization: plugin
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Require-Bundle: org.eclipse.core.runtime,
- org.eclipse.rcptt.core;bundle-version="[1.5.0,1.6.0)";visibility:=reexport
+ org.eclipse.rcptt.core;bundle-version="[1.5.3,1.6.0)";visibility:=reexport
Bundle-ActivationPolicy: lazy
Export-Package: org.eclipse.rcptt.debug,
org.eclipse.rcptt.debug.impl,
diff --git a/core/contexts/org.eclipse.rcptt.ctx.debug/pom.xml b/core/contexts/org.eclipse.rcptt.ctx.debug/pom.xml
index e12f814..e18b46a 100644
--- a/core/contexts/org.eclipse.rcptt.ctx.debug/pom.xml
+++ b/core/contexts/org.eclipse.rcptt.ctx.debug/pom.xml
@@ -4,10 +4,10 @@
<parent>
<artifactId>rcptt.core.contexts</artifactId>
<groupId>org.eclipse.rcptt</groupId>
- <version>1.5.0-SNAPSHOT</version>
+ <version>1.5.3-SNAPSHOT</version>
</parent>
<groupId>org.eclipse.rcptt</groupId>
<artifactId>org.eclipse.rcptt.ctx.debug</artifactId>
- <version>1.5.0-SNAPSHOT</version>
+ <version>1.5.3-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
</project>
diff --git a/core/contexts/org.eclipse.rcptt.ctx.extensions/META-INF/MANIFEST.MF b/core/contexts/org.eclipse.rcptt.ctx.extensions/META-INF/MANIFEST.MF
index 88ccb8b..b8c1308 100644
--- a/core/contexts/org.eclipse.rcptt.ctx.extensions/META-INF/MANIFEST.MF
+++ b/core/contexts/org.eclipse.rcptt.ctx.extensions/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Q7 Context Extensions
Bundle-SymbolicName: org.eclipse.rcptt.ctx.extensions;singleton:=true
-Bundle-Version: 1.5.0.qualifier
+Bundle-Version: 1.5.3.qualifier
Bundle-Activator: org.eclipse.rcptt.ctx.extensions.ContextExtensionsPlugin
Bundle-Vendor: Eclipse RCP Testing Tool Project
Require-Bundle: org.eclipse.core.runtime,
Все решения, которые я нашел, либо удаляют как начальные, так и конечные линии с шаблонами, либо ни одного из них.
1 ответ
Наконец, рабочее решение:
awk '
/^diff --git/ {skip = 0}
/^diff --git .*pom.xml$/ { skip = 1}
{if (!skip) print $0}
'
Наверное, это была не работа Седа.