用于查找字符串并从文件中删除它的命令

时间:2014-03-27 06:03:46

标签: unix replace text-files

我有一个属性文件mail.properties。该文件的内容是

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

......以及众多此类条目。

我想查找bcd_1@gmail.com并将其删除,只要它存在。输出属性文件(mail.properties)应如下所示:

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

2 个答案:

答案 0 :(得分:1)

sed -e 's/bcd_1@gmail\.com//g' -e 's/,,/,/g' -e 's/,$//g' -e 's/=,/=/g' mail.properties > mail.properties_new

答案 1 :(得分:1)

您可以尝试此sed

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

使用-i选项进行就地编辑。

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