ログなどの巨大なテキストファイルから一部を切り出す方法

ログファイルなど、ファイルサイズが1GBやそれ以上ある場合に、テキストエディタを使わずにコマンドラインで一部を切り出す方法です。 gzip圧縮されたファイルは適当にzlessやzcatで読み替えてください。

  • 行の範囲を特定する

lessコマンドに-Nオプションをつけて目的のファイルを開き、”/”を押して対象の文字を検索します。

less -N filename
  • 範囲の切り出し

sedで目的の行番号の範囲を切り出します。1506224行目から1506377行目まで切り出したい場合は以下のようにします。

cat hugelogfile.log | sed -n 1506224,1506377p > clipped.txt

以上。

参考

* http://stackoverflow.com/questions/831681/how-to-display-line-numbers-in-less-gnu
* http://stackoverflow.com/questions/83329/how-can-i-extract-a-range-of-lines-from-a-text-file-on-unix