非常に大きなテキストファイル(約10,000,000行)があるとしましょう。grep
最後から始めて結果をファイルに保存する必要があります。タスクを完了する最も効率的な方法は何ですか?
ベストアンサー1
食べ物/grep解決策
tac file | grep whatever
またはより効率的に:
grep whatever < <(tac file)
500MBファイル処理時間:
real 0m1.225s
user 0m1.164s
sys 0m0.516s
sed/grep解決策:
sed '1!G;h;$!d' | grep whatever
500MBファイルの処理時間:10分以上経過後に中断されました。
awk/grep解決策:
awk '{x[NR]=$0}END{while (NR) print x[NR--]}' file | grep whatever
500MBファイル処理時間:
real 0m5.626s
user 0m4.964s
sys 0m1.420s
パール/グレブ解決策:
perl -e 'print reverse <>' file | grep whatever
500MBファイル処理時間:
real 0m3.551s
user 0m3.104s
sys 0m1.036s