歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> SHELL編程 >> Linux通過shell腳本將txt大文件切割成小文件的方法

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

日期:2017/3/2 10:27:07   编辑:SHELL編程

Linux系統下,有些txt文件比較大,轉移到移動設備非常不方便,那麼能不能將txt大文件變成多個小文件呢?其實可通過shell腳本實現,下面小編就給大家介紹下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