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

#!/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

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

私密
私密原因:
请选择设置私密原因
  • 广告
  • 抄袭
  • 版权
  • 政治
  • 色情
  • 无意义
  • 其他
其他原因:
120
出错啦
系统繁忙,请稍后再试