ファイルの中から指定した行のみを表示する方法

こんにちは、さるまりんです。

今回はコマンドの小ネタです。

テキストファイルの中から「3行目だけ」とか「7行目から11行目だけ」を表示したい時はsedコマンドを使うと簡単にできます。

こんなファイルがあります。

zodiac.txt

Rat
Ox
Tiger
Rabbit
Dragon
Snake
Horse
Sheep
Monkey
Rooster
Dog
Boar

干支(十二支)の動物が英語で入っています。

このファイルから行指定して表示してみます。

特定行1行のみを表示するには

sed -n [行番号]p [ファイル名]

です。

この中から3行目だけを表示してみます。

$ sed -n 3p zodiac.txt
Tiger

3行目のTiger(虎)が表示されました。

特定の複数行を表示して表示するには

sed -n [開始行],[終了行]p [ファイル名]

です。

7行目から11行目を表示してみます。

$ sed -n 7,11p zodiac.txt
Horse
Sheep
Monkey
Rooster
Dog

7から11行目のHorseからDogまで(午〜戌)が表示されました。

大量の行数を持つファイルを分割したい時とか、長い長いログファイルの一部だけを抽出したい時、この方法が助けてくれてます。
もっといろんな便利な方法を知れるよう勉強していきたいです。

読んでくださってありがとうございました。

それではまた!