歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> SHELL編程

Linux通過shell腳本將txt大文件切割成小文件的方法

  Linux系統下,有些txt文件比較大,轉移到移動設備非常不方便,那麼能不能將txt大文件變成多個小文件呢?其實可通過shell腳本實現,下面小編就給大家介紹下Linux通過shell腳本切割txt大文件的方法。

Linux通過shell腳本將txt大文件切割成小文件的方法

  解決方法:

  1. 先使用split命令切割大文件,每個小文件保存100萬行

  split 參數:

  -b :後面可接欲分割成的檔案大小,可加單位,例如 b, k, m 等;

  -l :以行數來進行分割;

  #按每個文件1000行來分割除

  split -l 1000 httperr8007.log httperr

  httpaa,httpab,httpac 。。。。。。。。

  #按照每個文件100K來分割

  split -b 100k httperr8007.log http

  httpaa,httpab,httpac 。。。。。。。。

  2. 遍歷所有100萬行文件,逐個新建目錄再切割成1萬行小文件

  #!/bin/bash

  bigfile=“1.txt”

  split -l 1000000 $bigfile text

  currdir=1

  for smallfile in `ls | grep “text*”`

  do

  linenum=`wc -l $smallfile | awk ‘{print $1}’`

  n1=1

  file=1

  savedir=“$smallfile$currdir”

  if [ ! -d “$savedir” ]

  then

  mkdir $savedir

  fi

  while [ $n1 -lt $linenum ]

  do

  n2=`expr $n1 + 9999`

  sed -n “${n1},${n2}p” $smallfile 》 $savedir/text$file.txt

  n1=`expr $n2 + 1`

  file=`expr $file + 1`

  done

  currdir=`expr $currdir + 1`

  done

  上面就是Linux使用shell腳本將txt大文件切割成小文件的方法介紹了,txt文件太大的話可使用本文的方法進行切割處理。

Copyright © Linux教程網 All Rights Reserved