- 替换指定路径文件的字符串内容
sed s/原字符串正则/新字符串正则/g 文件名路径(可相对、也可绝对路径)
- 使用grep替换所在目录下的字符串内容
# linux下 i指备份
sed -i '.bak' s/原字符串正则/新字符串正则/g `grep 原字符串 -rl 所在目录`
# 在mac下 -i是强制备份的,因此可以使用 -i ''
sed -i '' s/原字符串正则/新字符串正则/g `grep 原字符串 -rl 所在目录`
具体的例子说明:
命令:
sed -i '.bak' s/maven.google.com/maven.aliyun.com\\/repository\\/google/g `grep maven.google.com -rl --include="*.gradle" ./platforms/android/`
解析:
在根目录./platforms/android/
下,将所有*.gradle
文件中内容为maven.google.com
,替换成maven.aliyun.com/repository/google
,并对原文件进行备份后缀名为.bak
-i
进行备份.bak
备份文件的后缀s
进行字符串替换操作maven.google.com
原字符串maven.aliyun.com\\/repository\\/google
替换的新字符串,/
使用\\
进行转义g
在文件中进行全局替换-rl
-r表示查找所有子目录, -l表示仅列出符合条件的文件名,用来传给sed命令做操作--include="*.gradle"
仅查找*.gradle文件./platforms/android/
表示要查找的根目录为当前目录
其他参考