加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

分割大文件

发布时间:2020-12-15 07:10:31 所属栏目:安全 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 # !/bin/bash# 手动分割日志#第一种方法,手写的,主要是练习shell编程newPath="F:/tools/shell/a/";newFile="access.log";file_name=$1;if [ ! -f $f

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

# !/bin/bash
# 手动分割日志

#第一种方法,手写的,主要是练习shell编程
newPath="F:/tools/shell/a/";
newFile="access.log";

file_name=$1;

if [ ! -f $file_name ]; then
    echo "没有找到该文件"; exit;
fi

#判断不为空
if [ -z $2 ]; then
    echo "给我一个分割数字"; exit;
else 
    line=$2;
fi

if [[ $line -le 0 ]]; then
    echo "给我一个合适的数字"; exit;
fi

all_line=`cat $file_name | wc -l`;
all_group=`expr $all_line / $line + 1`; 
startNums=1;
endNums=$line;
i=1;

# for ((i=1;i<=$all_group;i++))
# do  
#     sed -n "${startNums},${endNums}p" $file_name > "$newPath"`date +'%Y%m%d'`"$i$newFile";
#     startNums=$endNums;
#     endNums=`expr $endNums + $line`;
# done

until [ $endNums -ge `expr $all_line + $line` ]; 
do
    sed -n "${startNums},${endNums}p" $file_name > "$newPath"`date +'%Y%m%d'`"$i$newFile";
    startNums=$endNums;
    endNums=`expr $endNums + $line`;
    i=$[ $i + 1 ];    
done


#第二种方法更加方便快捷,默认会给newlog加标示
split -l 5000 access.log newlog

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读