Issue
I want remove below part from the file which is added below.
Not able to remove
credentials.admin.adapters
this property from fileHow to add content between
< >
this character in same line.<!--<UndefineProperty name="credentials.admin.adapters"/>--> <!--<AddToProperty name="credentials.admin.adapters" value="com.Ldap^cn=Manager^encrypted.com.Ldap.cn=admin"/>--> <Property name="credentials.admin.adapters" overridable="true" targetFile="Credentials.txt" value="com.Ldap^id=proxy"/> <!--<UndefineProperty name="credentials.admin.adapters"/> <AddToProperty name="credentials.admin.adapters" value="com.Ldap^cn=admin^encrypted.com.Ldap.cn=admin"/> -->
newconf.txt
<!--<UndefineProperty name="credentials.admin.adapters"/>-->
<!--<AddToProperty name="credentials.admin.adapters"
value="com.Ldap^cn=Manager^encrypted.com.Ldap.cn=admin"/>-->
<Property name="credentials.admin.adapters" overridable="true"
targetFile="Credentials.txt"
value="com.Ldap^id=proxy"/>
<Property name="pom.dbUser" overridable="true" targetFile="db.properties"
value="NM"/>
<Property name="pom.jdbc.host" overridable="true" targetFile="db.properties"
value="0038.rds.amazonaws.com"/>
<Property name="pom.dbPassword" overridable="true" targetFile="db.properties"
value="encrypted.pom.dbPassword"/>
<Property name="pom.serviceName" overridable="true" targetFile="db.properties"
value="rds.amazonaws.com:10:0038"/>
<Property name="pom.jdbc.service" overridable="true" targetFile="db.properties"
value="0038"/>
<Property name="pom.jdbc.port" overridable="true" targetFile="db.properties"
value="10"/>
<ConfigurationRef xlink:href="utilities/configurator.xconf"/>
<ConfigurationRef xlink:href="owl.xconf"/>
<ConfigurationRef xlink:href="ser.xconf"/>
<!--<UndefineProperty name="credentials.admin.adapters"/>
<AddToProperty name="credentials.admin.adapters"
value="com.Ldap^cn=admin^encrypted.com.Ldap.cn=admin"/> --><Property
name="com.distproc.credential" overridable="true"
targetFile="distproc.properties"
value=""/>
</Configuration>
I tried below:
sed -i '/value=/N; s/\n\s*/ /g' newconf.txt
sed -i "/credentials.admin.adapters/d" newconf.txt
But above code deleting the others property also.
I want below output:
<Property name="pom.dbUser" overridable="true" targetFile="db.properties" value="NM"/>
<Property name="pom.jdbc.host" overridable="true" targetFile="db.properties" value="0038.rds.amazonaws.com"/>
<Property name="pom.dbPassword" overridable="true" targetFile="db.properties" value="encrypted.pom.dbPassword"/>
<Property name="pom.serviceName" overridable="true" targetFile="db.properties" value="rds.amazonaws.com:10:0038"/>
<Property name="pom.jdbc.service" overridable="true" targetFile="db.properties" value="0038"/>
<Property name="pom.jdbc.port" overridable="true" targetFile="db.properties" value="10"/>
<ConfigurationRef xlink:href="utilities/configurator.xconf"/>
<ConfigurationRef xlink:href="owl.xconf"/>
<ConfigurationRef xlink:href="ser.xconf"/>
<Property name="com.distproc.credential" overridable="true" targetFile="distproc.properties" value=""/>
</Configuration>
Delete below line:
<!--<UndefineProperty name="credentials.admin.adapters"/>-->
<!--<AddToProperty name="credentials.admin.adapters" value="com.Ldap^cn=Manager^encrypted.com.Ldap.cn=admin"/>-->
<Property name="credentials.admin.adapters" overridable="true" targetFile="Credentials.txt" value="com.Ldap^id=proxy"/>
<!--<UndefineProperty name="credentials.admin.adapters"/>
<AddToProperty name="credentials.admin.adapters" value="com.Ldap^cn=admin^encrypted.com.Ldap.cn=admin"/> -->
Solution
Using sed
$ sed -z ':a;s/\([^\n]*\)\n \+/\1 /;ta;s/>\(<[^>]*>\) /\n\1\n/' input_file | sed '/credentials\.admin\.adapters/d'
<Property name="pom.dbUser" overridable="true" targetFile="db.properties" value="NM"/>
<Property name="pom.jdbc.host" overridable="true" targetFile="db.properties" value="0038.rds.amazonaws.com"/>
<Property name="pom.dbPassword" overridable="true" targetFile="db.properties" value="encrypted.pom.dbPassword"/>
<Property name="pom.serviceName" overridable="true" targetFile="db.properties" value="rds.amazonaws.com:10:0038"/>
<Property name="pom.jdbc.service" overridable="true" targetFile="db.properties" value="0038"/>
<Property name="pom.jdbc.port" overridable="true" targetFile="db.properties" value="10"/>
<ConfigurationRef xlink:href="utilities/configurator.xconf"/>
<ConfigurationRef xlink:href="owl.xconf"/>
<ConfigurationRef xlink:href="ser.xconf"/>
<Property name="com.distproc.credential" overridable="true" targetFile="distproc.properties" value=""/>
</Configuration>
Getting below unstable output:
value="NM"/>e="pom.dbUser" overridable="true" targetFile="db.properties"
value="0038.rds.amazonaws.com"/>erridable="true"
targetFile="db.properties"
value="encrypted.pom.dbPassword"/>rridable="true"
targetFile="db.properties"
value="rds.amazonaws.com:10:0038"/>rridable="true"
targetFile="db.properties"
value="0038"/>"pom.jdbc.service" overridable="true"
targetFile="db.properties"
value="10"/>e="pom.jdbc.port" overridable="true"
targetFile="db.properties"
<ConfigurationRef xlink:href="utilities/configurator.xconf"/>
<ConfigurationRef xlink:href="owl.xconf"/>
<ConfigurationRef xlink:href="ser.xconf"/>
Answered By - HatLess Answer Checked By - Terry (WPSolving Volunteer)