批量改旧文件就是麻烦呀,我写了脚本来帮忙
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