No.491


【Linux】ファイル中の一部の行だけ表示する【sed】

100万行のデータの一部とかとかどうやって確認すればいいの…

 膨大なログファイルや出力データの中から必要な部分だけ取り出したい場合に重宝するのが sed コマンド。

 awk コマンドなどを使っても同じことができるが、記法が複雑になるだけなので得に覚えなくても良いと思う。sedがなくて awk だけあるってこともないだろうし。


ファイルの○行目から△行目まで取り出す方法

 下記のコマンドで取り出せる。簡単簡単。

sed -n '○,△p' ファイル名

 実行例としては下記のような感じになる。100行目から200行目まで取り出す場合だ。

sed -n '100,200p' /var/log/message

ファイルの○行目から最後まで取り出す方法

 行末を表す $ を行数の代わりに使用すればOK。

sed -n '○,$p' ファイル名

 実行例としては下記のような感じになる。100行目から最後まで取り出す場合だ。

sed -n '100,$p' /var/log/message

ファイルの末尾を取り出す方法

 初心者にはたまに聞かれるので一応書いておく。

 普通に tail コマンドでどうぞ。

tali --line=取り出したい行数 ファイル名

 実行例としては下記のような感じになる。末尾100行を取り出す場合だ。

tail --line=100 /var/log/message