批量改舊文件就是麻煩呀,我寫了腳本來幫忙
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