整理源文件技巧:批量替换

批量改旧文件就是麻烦呀,我写了脚本来帮忙


1)找到所有非 binary 的源文件

 find -type f -exec grep -Il . {} \; 〉tochange.list


grep 参数

 -l 不输出内容,而输出文件名

 -I 把 Binary 当作不匹配文件


find -exec

 {} 代表找到的每一个String 

\; 大概是转义给 find 用的 ;


2) 把含有 $Id 的一行去掉

cat  tochange.list  | while read line; do  cat "$line" | grep -v '$Id' > txt; mv txt "$line"   ; done

(删掉临时文件:  find -name "txt" | xargs rm )


3) 把 2013  2012-2014 等都替换为 2015

cat tochange | while read line; do  sed -i '1,5s/20[^ ]*/2015/'  "$line"   ; done

你可能感兴趣的:(脚本)