码迷,mamicode.com
首页 > 系统相关 > 详细

shell sed语法详解

时间:2018-01-10 21:42:53      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:特殊   adl   documents   code   mac osx   头部   选项   替换   document   

sed  替换文件中的字符串

sed -e ‘s/foo/bar/‘ myfile   将 myfile 文件中每行第一次出现的foo用字符串bar替换,然后将该文件内容输出到标准输出

sed -e ‘s/foo/bar/g‘ myfile  g 使得 sed 对文件中所有符合的字符串都被替换

sed -i ‘s/foo/bar/g‘ myfile  选项i的用途是直接在文件中进行替换

为防止误操作带来灾难性的后果,sed在替换前可以自动对文件进行备份,前提是需要提供一个后缀名。mac osx下是强制要求备份的,centos下是可选的 
sed -i ‘.bak‘ ‘s/foo/bar/g‘ ./m* 
如果不需要备份文件,使用空字符串来取消备份,mac osx下可以使用如下命令完成替换操作: 
sed -i ‘‘ ‘s/foo/bar/g‘ ./m*

sed ‘s/^/添加的头部&/g‘ //在所有行首添加
sed ‘s/$/&添加的尾部/g‘ //在所有行末添加
sed ‘2s/原字符串/替换字符串/g‘ //替换第2行
sed ‘$s/原字符串/替换字符串/g‘ //替换最后一行
sed ‘2,5s/原字符串/替换字符串/g‘ //替换2到5行
sed ‘2,$s/原字符串/替换字符串/g‘ //替换2到最后一行

替换样式可以多个在同一条命令中执行,用分号”;”分隔,例如:

代码如下:

sed ‘s/^/添加的头部&/g;s/$/&添加的尾部/g‘ //同时执行两个替换规则

 

当替换的内容有变量时,需要使用“”

如:sed "s/$a/$b/" filename

常见字符串替换:

1.替换sdk.dir=H:\\sdk.text  需要将H:\\sdk.text替换为/Users/jenkins/jenkins/tool/android-sdk-macosx

sed -i "" ‘s@\(sdk.dir=\).*@\1\/Users/jenkins/jenkins/tool/android-sdk-macosx@‘ ${WORKSPACE}${fileload}  

---s后面的分隔符可以为/ @ #等。.*代表sdk.dir=后的内容  \1\代表sdk.dir=

2.替换thinkive.keystore为/Users/jenkins/Documents/Android_keystore/thinkive.keystore

sed -i "" ‘s@thinkive.keystore@/Users/jenkins/Documents/Android_keystore/thinkive.keystore@‘ ${WORKSPACE}/app/build.gradle

直接替换即可。

3.替换<string>23</string> 为<string>24</string>

sh ‘‘‘sed -i "" "s@<string>23</string>@<string>${Codeversion}</string>@" ${WORKSPACE}${fileload}

直接替换即可。

4.替换特殊字符串中的字符串。如替换thinkiveQWERT1003中的1003为1004

sed -i "" ‘/thinkiveQWERT1003/s/1003/1004/‘ ${WORKSPACE}/app/build.gradle

原字符串写在s前面。

shell sed语法详解

标签:特殊   adl   documents   code   mac osx   头部   选项   替换   document   

原文地址:https://www.cnblogs.com/wwyxyt/p/8260491.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!