How can I remove a line with Ant replaceregexp, but not leave an empty line
ant
Solution
Something like this should work:
Require-Bundle: org\.eclipse\.linuxtools\.cdt\.libhover;bundle-version="1\.\s*1.0"\s*
(using `\s*` to match zero or more whitespace characters, which include `\r` and `\n`) but since you're dealing with a manifest file it would make more sense to use a proper manifest parser. Unfortunately the Ant `<manifest>` task doesn't provide a way to remove attributes, but it's pretty straightforward with a `<script>` task:
<property name="manifest.file" location="path/to/manifest.txt" />
<script language="javascript"><![CDATA[
importPackage(java.io);
importPackage(java.util.jar);
// read the manifest
manifestFile = new File(project.getProperty('manifest.file'));
manifest = new Manifest();
is = new FileInputStream(manifestFile);
manifest.read(is);
is.close();
// remove the offending attribute
manifest.getMainAttributes().remove(new Attributes.Name('Require-Bundle'));
// write back to the original file
os = new FileOutputStream(manifestFile);
manifest.write(os);
os.close();
]]></script>
Problem
I have the following text file: ``` Manifest-Version: 3.0.0 Ant-Version: Apache Ant 1.7.1 Created-By: 10.0-b19 (Sun Microsystems Inc.) Require-Bundle: org.eclipse.linuxtools.cdt.libhover;bundle-version="1. 1.0" Bundle-SymbolicName: com.qnx.doc.gestures.lib_ref Bundle-Version: 3.0.0.20121120 Bundle-Localization: plugin Bundle-Name: %plugin.name Bundle-Vendor: %plugin.providername ``` And I'm trying to use the following pattern in a replaceregexp task ``` regexp pattern='Require-Bundle: org.eclipse.linuxtools.cdt.libhover;bundle-version="1. [\s\S]*' ``` To end up with this: ``` Manifest-Version: 3.0.0 Ant-Version: Apache Ant 1.7.1 Created-By: 10.0-b19 (Sun Microsystems Inc.) 1.0" Bundle-SymbolicName: com.qnx.doc.gestures.lib_ref Bundle-Version: 3.0.0.20121120 Bundle-Localization: plugin Bundle-Name: %plugin.name Bundle-Vendor: %plugin.providername ``` The trouble is I keep getting this: ``` Manifest-Version: 3.0.0 Ant-Version: Apache Ant 1.7.1 Created-By: 10.0-b19 (Sun Microsystems Inc.) 1.0" Bundle-SymbolicName: com.qnx.doc.gestures.lib_ref Bundle-Version: 3.0.0.20121120 Bundle-Localization: plugin Bundle-Name: %plugin.name Bundle-Vendor: %plugin.providername ``` What should my regex be to get rid of the empty line? Thanks.