总体思路,分而治之
- 编写shell脚本
vim sort_bigfile.sh
#!/bin/bash
lines=$(wc -l $1 | sed 's/ .*//g')
let lines_per_file=lines/$3
split -d -l $lines_per_file $1 _part_$1
for file in _part_*
do
{
sort $file > sort_$file
}
done
wait
sort -smu sort_* > $2
rm -f _part_*
rm -f sort_*
- 执行shell, 目标大文件bigfile.txt,最终生成的文件final.txt,切割文件分数30
sh sort_bigfile.sh bigfile.txt final.txt 30