`

sed 批量替换字符串

 
阅读更多

 

 

 

 

 

 

 

 

编写hive仓库中,在dm层表依赖mid层表时,如果mid层表修改名称,一个个的替换dm层表的引用会很麻烦,

这时候使用sed批量替换最好用不过;

 

 

命令格式和写法如下:

 

 命令格式:
 sed -i "s/原字符串/新字符串/g" `grep 原字符串 -rl 所在目录`
 
 案例:
  sed -i "s/mid_teach_school_grade_subject_teacher_prepare_lesson_stat_/mid_teach_teacher_prepare_lesson_stat_/g" `grep -rl "mid_teach_school_grade_subject_teacher_prepare_lesson_stat_" ./*`
 
  说明:
  `grep -rl "mid_teach_school_grade_subject_teacher_prepare_lesson_stat_" ./*` 表示输出所有包含字符mid_teach_school_grade_subject_teacher_prepare_lesson_stat_的文件名
 
  sed -i "s/mid_teach_school_grade_subject_teacher_prepare_lesson_stat_/mid_teach_teacher_prepare_lesson_stat_/g"   文件名1  文件名2 ..... 表示在文件里直接替换将 第一个字符串替换成第二个字符串
 
 
  其余说明:
 
-i 表示inplace edit,就地修改文件

-r 表示搜索子目录

-l 表示输出匹配的文件名

这个命令组合很强大,要注意备份文件。

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics