Domanda

I have a property file mail.properties. The content of the file is

ErrorEmailTo.server1=abc_1@gmail.com,bcd_1@gmail.com,efg_1@gmail.com 
ErrorEmailFrom.server1=abc_1@gmail.com,bcd_1@gmail.com,efg_1@gmail.com
ErrorEmailCC.server1=abc_1@gmail.com,efg_1@gmail.com,bcd_1@gmail.com

...and numerous such entries.

I want to find bcd_1@gmail.com and delete it wherever it is present. The output property file (mail.properties) should look like :

ErrorEmailTo.server1=abc_1@gmail.com,efg_1@gmail.com 
ErrorEmailFrom.server1=abc_1@gmail.com,efg_1@gmail.com
ErrorEmailCC.server1=abc_1@gmail.com,efg_1@gmail.com
È stato utile?

Soluzione

You can try this sed,

sed 's/bcd_1@gmail.com,\?//g; s/,*$//' mail.properties

Use -i option for in-place edit.

sed -i 's/bcd_1@gmail.com,\?//g; s/,*$//' mail.properties

Altri suggerimenti

sed -e 's/bcd_1@gmail\.com//g' -e 's/,,/,/g' -e 's/,$//g' -e 's/=,/=/g' mail.properties > mail.properties_new
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top