• shell切割日志脚本


     1 #!/bin/bash
     2 
     3 set -e
     4 
     5 source /etc/bashrc
     6 
     7 cd `dirname $0`
     8 
     9 linenum=`wc -l userinfolist.txt | awk '{print $1}'`
    10 
    11 n1=1
    12 
    13 file=1
    14 
    15 while [ $n1 -lt $linenum ]
    16 do
    17   n2=`expr $n1 + 9999`
    18   sed -n "${n1}, ${n2}p" userinfolist.txt>/home/jideyue/logs/userdir/file_$file.log
    19   n1=`expr $n2 + 1`
    20   file=`expr $file + 1`
    21 done

    set -n "1,1000p" 表示从第1行到1000行。按照上面的脚本表示 每10000行 一个文件。

    另外还有个split命令可以快速切割

    split [-bl] file [prefix]

    参数说明:
    -b, --bytes=SIZE:对file进行切分,每个小文件大小为SIZE。可以指定单位b,k,m。
    -l, --lines=NUMBER:对file进行切分,每个文件有NUMBER行。

    prefix:分割后产生的文件名前缀。

    例如:

    按照行数:

    split -l 5000 test.2012-08-16_17

    生成xaa,xab,xac三个文件。
    wc -l 看到三个文件行数如下:
    5000 xaa
    5000 xab
    2081 xac

    12081 总计

    按照文件大小

    split -b 600k test.2012-08-16_17

    生成xaa,xab两个文件
    ls -lh 看到 两个文件大小如下:
    600K xaa

    554K xab

    指定文件名:

    split -b 500k test.2012-08-16_17 example

    ls -lh 看到文件信息如下:
    500K exampleaa
    500K exampleab
    154K exampleac

  • 相关阅读:
    [iOS微博项目
    [iOS微博项目
    [iOS微博项目
    [iOS微博项目
    APScheduler: standalone vs daemonic
    一句话解释jquery中offset、pageX, pageY、position、scrollTop, scrollLeft的区别
    cocos2d-x box2d使用调试绘图
    Maven管理Android项目1
    mina socket底层主流程源码实现
    5种IO模型
  • 原文地址:https://www.cnblogs.com/gide/p/5475535.html
Copyright © 2020-2023  润新知