まくまくsed/awkノート
sed で指定した範囲の行を表示する
2010-08-26

sed の -n オプションと、p コマンドを組み合わせると、指定した範囲の行だけ表示することができます。

入力ファイル (input.txt)

001 One
002 Two
003 Three
004 Four
005 Five

例: 1~3行目を表示

$ sed -n -e '1,3p' input.txt
001 One
002 Two
003 Three

sed コマンドは、基本的には読み込んだ行をそのまま出力しようとします。 上記の -n オプションはこの動きを抑制し、1~3行目だけを p コマンドによって出力するように命令しています。 -n オプションを付け忘れて実行すると、すべての行が無条件で一度ずつ出力され、さらに p コマンドによる出力が行われることになります。

例: -n オプションを指定し忘れたとき

$ sed -e "1,3p" input.txt
001 One
001 One
002 Two
002 Two
003 Three
003 Three
004 Four
005 Five
2010-08-26