将大文件拆分为多个小文件

Linux/Mac (使用split命令,会默认保留原文件编码)

语法、使用示例如下:

1
2
3
4
5
// 语法
split -l 每多少行拆分 -d -a 序列号位数 --additional-suffix="拆分后的文件后缀" 待拆分的文件名称 "拆分后的文件前缀"

// 使用示例:chunk_0000.sql、chunk_0001.sql...
split -l 100000 -d -a 4 --additional-suffix=".sql" insert_tmp_user.txt "chunk_"

Windows (使用PowerShell,需指定文件编码)

1
2
3
4
5
6
7
8
9
10
11
12
13
// 1、语法
// 这个变量是全局的,每次执行会重置
$i = 0
Get-Content 待拆分的文件名称 -ReadCount 每多少行拆分 -Encoding UTF8 | ForEach-Object {
$_ | Out-File -FilePath "拆分后的文件全名称" -Encoding 字符编码
$i++
}
// 2、使用示例
$i = 0
Get-Content insert_tmp_user.txt -ReadCount 100000 -Encoding UTF8 | ForEach-Object {
$_ | Out-File -FilePath "tmpuser\chunk_$i.sql" -Encoding UTF8
$i++
}