大きなテキストファイルをsortコマンドでソートする方法
かのデカルトは言った「困難は分割せよ」
この記事では,sortコマンドで発生したメモリ不足という困難を,splitコマンドで分割することで解決する.
ちなみにbashを想定している.
内容
sortコマンド
ソートしてくれるコマンド
splitコマンド
ファイルを分割してくれるコマンド(デフォルトでは1000ファイルに分割)
やり方
# 100ファイルに分割 split -n 100 target_file.txt sp_files.txt # 分割されたファイルをソート for FILENAME in $(ls sp_files.txt*) do sort ${FILENAME} > sorted_${FILENAME} done # マージソート sort -m sorted_sp_files.txt* > sorted_target_file.txt
こうすればメモリが足りないということはなくなる.