特定目录下特定文件的第一个特定字符全局替换

#!/bin/sh  
path=/service    #你想要替换的特定目录
cd $path    #切换到该目录
for files in $(find -name '*.java');do      #我这里是所有后缀为.java的特定文件
if [ $(grep -c "DomainService" $files) -eq 0 ];        #如果循环出来的文件里包含DomainService这个字符串
then
  echo "true";  #输出 true 可去掉
  echo ${files##*/};  #输出被修改文件名,可去掉
  sed -i '0,/{/{s/{/implements DomainService{/}' $files  #参数-i代表覆盖源文件  ,我这里是找到的第一个字符串会被全局替换
fi

done


参考链接:https://stackoverflow.com/questions/148451/how-to-use-sed-to-replace-only-the-first-occurrence-in-a-file

阅读更多
文章标签: shell linux 脚本
个人分类: 编程
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭