ファイルの指定行数から指定行数まで抜き出す

こんなときどうしてる? シリーズです。

ファイルの指定行数から指定行数まで抜き出したいときがあります。

たとえば、/var/hoge.logの10行目から15行目までを抜き出したいときとかに、僕は、とっさにawkを使って、

$ awk 'NR >=10&&NR<=15{print $0}' < /var/hoge.log

と書いてしまったのですが、もっと他のやり方があるような気がしてなりません。みなさんはこういうシチュエーションのときはどうやってますか?

前もどこかで書いた気がしますが、「二つのファイルから違う行だけ抜き出す」だとか「あるディレクトリ以下から5日以内に更新があったファイルをリストする」だとか、そういうよくありがちなチマチマしたシチュエーションに即時に対応するできるノウハウをググらずにどれだけ持ってるかが、僕がエンジニアに職人らしさを感じて尊敬できるところなんだと思います。

気に入ったらシェアお願いします!

この記事を書いた人

こんにちは!カノといいます👓
インターネットやテクノロジー、ビジネスモデルや歴史(世界史・日本史)、美術などが好きです。メガネのせいか真面目っぽく見えるらしいですが、基本的には昔からいい加減な性格です。
このブログは昔からずっと個人的な日記みたいな感じで書いてきていて、基本的には個人的なログになりますが、興味のあるところだけ読んでいただけるとうれしいです。コメントやTwitterのフォローなどは大歓迎です。

コメント

コメント一覧 (2件)

  • 一番簡単なのは、headとtailを組み合わせた方法ですね。
    $ head -15 hoge.log | tail -5
    一番入力が少ないのは、sedを使った方法だと思われます。
    $ sed -n 10,15p

  • コメントどうもです。
    head/tailかぁ、なるほど。
    素直に感動しました。さすが!

コメントする

目次