
DIFF=_diff
BAK=_bak
LINES=line
while read FILENAME
do
#核对文件的行数是否对应
#文件(/eusp/data/h_data/filesin.txt)存放的要核对的文件名(包括路径)
FILENAME_DEAL="$FILENAME"_deal
FILENAME_ERR="$FILENAME"_err
FILENAME_DEAL_DIFF="$FILENAME"_deal_diff
#echo "$FILENAME"
#echo "$FILENAME_DEAL"
#echo "$FILENAME_ERR"
#echo $FILENAME_DEAL_DIFF
if [ -f "$FILENAME" -a -f "$FILENAME_DEAL" -a ! -f "$FILENAME_ERR" ]
then
LINE1=`cat $FILENAME | wc -l`
LINE2=`cat $FILENAME_DEAL | wc -l`
if [ ${LINE1} -ne ${LINE2} ]
then
#查找$filename$deal$diff文件的行数diff1和其中包括的特殊字符$lines开头的行数
DIFF1=`cat $FILENAME_DEAL_DIFF|wc -l`
DIFF2=`grep $LINES $FILENAME_DEAL_DIFF|wc -l`
ENTER1=`expr $DIFF1 - 1 - 4 \* $DIFF2`
ENTER2=`expr $LINE1 - $LINE2`
if [ $ENTER1 -ne $ENTER2 ]
then
echo "$FILENAME处理前后行数不等,分别为$IN1和$OUT1"
else
mv $FILENAME "$FILENAME"_bak
mv $FILENAME_DEAL $FILENAME
echo "$FILENAME is moved 1"
fi
else
mv $FILENAME "$FILENAME"_bak
mv $FILENAME_DEAL $FILENAME
echo "$FILENAME is moved 2"
fi
else
echo " 上面文件不存在!"
fi
done < filesin.txt
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/21634752/viewspace-613685/
,如需转载,请注明出处,否则将追究法律责任。