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

  • 相关阅读:
    如何用VSCode编写Java程序
    使用Xcode + Python进行IOS运动轨迹模拟
    聚类(Clustering)
    异常值(outlier)
    线性回归(regression)
    自适应增强(Adaptive Boosting)
    决策树(Decision Trees)
    支持向量机(SVM)
    朴素贝叶斯(Naive Bayesian)
    ItChat与图灵机器人的结合
  • 原文地址:https://www.cnblogs.com/gide/p/5475535.html
Copyright © 2011-2022 走看看