BASE_VERSION=`pwd`
cd$BASE_VERSION
CUSTOM=$BASE_VERSION/custom.txt
if [ ! -f$CUSTOM ];then
echo "Finding customized files andfolders.............."
grep -inr "${OLD_PROJECT}" * >$CUSTOM //-----------找到以${OLD_PROJECT}匹配成功的项
find . -name *${OLD_PROJECT}* >> $CUSTOM
else
echo "$CUSTOM is exist!!!"
fi
sed -i's/\.\///g' $CUSTOM //----------把./去掉
grep -rv^Binary $CUSTOM > cst_file.txt //-----------把行中出现Binary的行删除
sed -i s/:.*//g cst_file.txt //-----------------------把:及后面的内容全部删除
sort -u cst_file.txt -o cst_file.txt //-u删除重复行 -o再输出到原来文件
grep -r ${OLD_PROJECT}$ cst_file.txt > folder.txt //----------找出以${OLD_PROJECT}结尾的行,变量后面的$符号很重要
grep -rv ${OLD_PROJECT}$ cst_file.txt > files.txt //----------找出除了满足以${OLD_PROJECT}结尾的行
补充:
1、sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。
2、sort的-u选项 它的作用很简单,就是在输出行中去除重复行。
3 、sort的-r选项 sort默认的排序方式是升序,如果想改成降序,就加个-r就搞定了。
4、sort的-o选项 由于sort默认是把结果输出到标准输出,所以需要用重定向才能将结果写入文件,形如sort filename > newfile。
但是,如果你想把排序结果输出到原文件中,用重定向可就不行了。