zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    HDU 4388 To the moon
    HDU 4757 Tree
    HDU 5816 Hearthstone
    hihocoder 1356 分隔相同整数
    HDU 5726 GCD
    POJ3026 Borg Maze(Prim)(BFS)
    POJ1258 Agri-Net(Prim)
    POJ1751 Highways(Prim)
    POJ2349 Arctic Network(Prim)
    POJ1789 Truck History(Prim)
  • 原文地址:https://www.cnblogs.com/gide/p/5475535.html
Copyright © 2011-2022 走看看