ファイルやコマンドの出力を画面毎に行う(MORE)

広告

moreコマンドはリダイレクトやパイプによって標準入力から入力されたデータを画面単位で区切って標準出力へ出力します。非常に長いデータを一気にコマンドプロンプトへ出力すると画面がどんどんスクロールしてしまいます。moreコマンドを使用することで1画面に表示できるだけの情報を表示し、キー押す事によって続きの内容を順に見ることができます。

※リダイレクトやパイプについては「リダイレクトとパイプ」を参照して下さい。

具体的には次の書式を使います。

more < ファイル名
コマンド | more

ファイルの内容を出力する場合はリダイレクトを使ってファイル名を指定します。コマンドの実行結果を出力する場合にはパイプを使ってコマンド名を指定します。

コマンドプロンプトの拡張機能が有効になっている場合には単に次のように記述することもできます。

more ファイル名
more /e ファイル名      <- /eオプションは拡張機能を有効にします

また複数のファイルを続けて出力する場合は空白を区切り文字として続けてファイルを指定して下さい。

more ファイル名1 ファイル名2 ...

では実際に試してみます。まずはリダイレクトを使ってファイルの内容を画面単位で出力します。

ファイルやコマンドの出力を画面毎に行う(MORE)

moreコマンドを実行すると、現在のコマンドプロンプトの画面サイズの分だけファイルを表示し、いったん停止します。

ファイルやコマンドの出力を画面毎に行う(MORE)

ここで「Space」を押すと次の1画面分が表示されます。それ以降も最後の行が表示されるまで同じように繰り返し表示と停止を繰り返します。

ファイルやコマンドの出力を画面毎に行う(MORE)

ファイルやコマンドの出力を画面毎に行う(MORE)

次にパイプを使いコマンドの実行結果を画面単位で出力します。

ファイルやコマンドの出力を画面毎に行う(MORE)

moreコマンドのヘルプをパイプを使って画面単位で表示しています。

ファイルやコマンドの出力を画面毎に行う(MORE)

最後に複数のファイルを指定してまとめて出力を行います。

ファイルやコマンドの出力を画面毎に行う(MORE)

ファイルの内容がまとめた上で画面単位で出力するのではなく、ファイル毎に画面単位で出力を行うようです。その為、ファイルの内容が少ない場合は1画面に十分入る量であっても出力が止まることがあります。

ファイルやコマンドの出力を画面毎に行う(MORE)

ファイルやコマンドの出力を画面毎に行う(MORE)

キー操作

出力が停止した時に「Space」を押すと次の1画面分の出力が行われますが、他にも次のキーを利用することができます。

P n     次の n 行を表示します。
S n     次の n 行をスキップします。
F       次のファイルを表示します。
Q       終了します。
=       行番号を表示します。
?       ヘルプを表示します。
Space   次ページを表示します。
Enter   次の行を表示します。

では実際に試してながらいくつかのキーを試してみます。

ファイルやコマンドの出力を画面毎に行う(MORE)

画面が停止した時に「Space」ではなく「Enter」を押すと次の1行が表示されます。

ファイルやコマンドの出力を画面毎に行う(MORE)

「p」を押した後に行数を入力すると、次の入力した行数分だけ表示します。

ファイルやコマンドの出力を画面毎に行う(MORE)

ファイルやコマンドの出力を画面毎に行う(MORE)

「s」を押した後に行数を入力すると、次の入力した行数分だけスキップした位置から改めて一画面分を表示します。

ファイルやコマンドの出力を画面毎に行う(MORE)

ファイルやコマンドの出力を画面毎に行う(MORE)

「q」を押すとコマンドを終了します。

ファイルやコマンドの出力を画面毎に行う(MORE)

また複数のファイルを指定した場合、「f」を押すと現在表示しているファイルの表示は終了し次のファイルを先頭から1画面分表示します。

ファイルやコマンドの出力を画面毎に行う(MORE)

ファイルやコマンドの出力を画面毎に行う(MORE)

指定した行から表示を開始する

moreコマンドにおいてもいくつかのオプションが用意されていますが、指定した行から表示を開始するオプションを確認します。次の書式を使用します。

more +行数

「+行数」オプションを指定すると、指定した行から出力を開始します。非常に長い文書を出力する場合などに途中を飛ばして表示させたい場合などに便利です。

では実際に試してみます。オプションを指定せずにmoreコマンドを実行した場合は次のようになります。

more < list.txt

ファイルやコマンドの出力を画面毎に行う(MORE)

オプションとして「+6」を指定した場合には6行目から出力を開始します。

more +6 < list.txt

ファイルやコマンドの出力を画面毎に行う(MORE)

( Written by Tatsuo Ikura )