linux将一个大文件按行拆分成小文件

1split命令

-l指定行数,每个文件多少行

-b指定大小,每个文件100M.,这种担心会破坏一行的完整性

-d指定用数字递增为生成的文件名编号 test111为前缀

-a指定有几位数字  这里指定了4位,则从0000开始

 split -l 700000 /atmd/data/i0610_2.csv -d -a 4 test111
 split -b 100M /atmd/data/i0610_2.csv -d -a 4 test111

2笨方法sed命令

sed -n '7000001,7700000'p /atmd/data/i0610_2.csv >/tmp/song770w.csv

我尝试着通过脚本循环,生成,但是行数位置对于参数的引入。老是报错。。。。。

# /bin/bash
j=0
#for line in $(cat test111.csv)
length=`cat test111.csv|wc -l`
while [ $j -le $length ]
do

   end=`expr $j + 10`
   sed -n '$j,${end}p' test111.csv >test_$j.csv
   j=$j+10
done

 

你可能感兴趣的:(linux)