大文件按行分离脚本

Posted 书山有路勤为径

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大文件按行分离脚本相关的知识,希望对你有一定的参考价值。

 1 #!/bin/bash
 2 #大文件按行数分离成若干小文件脚本
 3 
 4 con_data=db2 connect to db_edp
 5 con_time=db2 "values current timestamp"
 6 con_reset=db2 connect reset
 7 #将要分离的文件名写到此处,其它地方不要改动
 8 clear_file=pdm_20160512.txt
 9 
10 echo $con_data > lianjie.txt
11 echo $con_time >> lianjie.txt
12 
13 echo "添加连接数据库命令到分离文件中......" 
14 awk 1;NR%40==0{system("cat lianjie.txt")} $clear_file > $clear_file.bak
15 sed -i "1i $con_data" $clear_file.bak
16 sed -i "2i $con_time" $clear_file.bak
17 
18 echo "开始分离文件......"
19 split -l 42 -d -a 3 $clear_file.bak del_ && ls| grep del_ | xargs -n1 -i mv {} {}.sh
20 
21 echo "添加结尾时间戳到分离后的小文件中......"
22 for file in `ls|grep del_`;do
23 echo $con_time >> $file
24 echo $con_reset >> $file
25 done
26 
27 echo "压缩分离后的小文件......"
28 tar cf $clear_file.tar del_*
29 
30 echo "删除生成的文件......"
31 rm -f del_* lianjie.txt $clear_file.bak
32 
33 echo "执行完成"

 

以上是关于大文件按行分离脚本的主要内容,如果未能解决你的问题,请参考以下文章

python按行读取文件,如何去掉换行符"\n

PHP快速按行读取CSV大文件的封装类分享(也适用于其它超大文本文件)

Shell脚本——按行读取文件

Shell脚本——按行读取文件

在 GCP 中按行拆分大文件

shell脚本按行读取文件内容的方法