【Linux】テキストファイルの一部のX行目~Y行目を表示する方法

2019年11月4日

ログファイルなどの巨大なテキストファイルのX~Y行目だけを表示させたい事があると思います。

そんな時はLinuxのコマンドラインで以下のようにheadとtailコマンドを組み合わせれば実現できます。

X = 表示開始行
Y = 表示終了行
Z = テキストファイルの行数
N = Y - X + 1 (表示させたい行数)
とするとき

$ head -n Y 対象ファイル | tail -n N

※だたし、Z >= Y >= X の条件を満たす時

tailコマンドから始める事も可能です。

X = 表示開始行
Y = 表示終了行
Z = テキストファイルの行数
N = Y - X + 1 (表示させたい行数)
L = Z - X + 1 (表示させたい行から最終行までの行数)
とするとき

$ tail -n L 対象ファイル | head -n N

※だたし、Z >= Y >= X の条件を満たす時

たとえば10000行あるログファイルの5000行目~5999行目まで1000行分表示させたい時は以下のようになります。

$ head -n 5999 logfile | tail -n 1000

または

$ tail -n 5001 logfile | head -n 1000

※1~10000行まであるファイルの5000~10000行は5001行あることに注意

分かり易い方を使ってみて下さい。