總體思路,分而治之
- 編寫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_*
- 執(zhí)行shell, 目標(biāo)大文件bigfile.txt,最終生成的文件final.txt,切割文件分?jǐn)?shù)30
sh sort_bigfile.sh bigfile.txt final.txt 30