linux拆分csv文件为多个小文件

拆分脚本:split_file_to_part_based_on_line.sh

#!/bin/bash

:<<!
参数说明:
$0      脚本文件名
$1      待拆分文件名
$2      拆分后的文件的行数
$3      拆分后的文件的前缀
!

echo "---- start ----"
echo "FILE_NAME: $1"

total_lines=`cat $1 | wc -l`
floor=`echo "scale=0;$total_lines/$2"|bc -l ` # 向下取整
flag=`awk -v num1=$floor -v num2=$1 'BEGIN{print(num1<num2)?"1":"0"}'`
num=`expr $floor + $flag`
filename=$1
extension="${filename##*.}"

split $1 -l $2 --verbose -d -a ${#num} $3_&&ls|grep $3|xargs -n1 -i{} mv {} {}.${extension}

last_file_line=`cat $3_$floor.${extension} | wc -l`

echo "FILE_EXT: ${extension}"
echo "FILE_LINES: $total_lines"
echo "FILE_NUMBER: $num"
echo "LAST_FILE_LINE: ${last_file_line}"

增加x权限: chmod u+x split_file_to_part_based_on_line.sh

示例:
./split_file_to_part_based_on_line.sh data_history.csv 20000 part

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值