Linux / コマンド / more - テキストを画面単位で分けて見る

moreは、長いテキストを端末画面単位で分けて表示するページャーです。基本的な環境で簡単に使用できますが、双方向の探索やさまざまな検索機能が必要な場合は、通常lessの方が便利です。

以下は主にLinuxのutil-linux版を対象にします。自分が読める、1画面を超えるテキストファイルを用意し、例の名前を置き換えて試してください。この記事では more の基本的な文法と主なオプション、実際の使用例、関連コマンドとの違い、使用時の注意点について説明します。

ファイルまたは標準入力を1画面ずつ表示し、ユーザーのキー入力を待ちます。Spaceで次の画面、Enterで次の行、qで終了する動作が代表的です。実装により、サポートされる逆方向移動やオプションは異なります。

基本的な文法

more [オプション] [ファイル ...]

オプションや詳細な動作は実装やバージョンによって異なる場合があります。現在のシステムではmore --helpとman moreでインストールされたコマンドの説明を確認してください。

moreの基本的な使い方

ファイルを画面単位で読む

ファイル内の現在位置を示す割合や状態が画面下に表示されることがあります。残りの割合を示すとは限りません。

more README.txt

次の画面や行に移動する

実行中は Space で次の画面、Enter で1行進み、q で終了します。util-linux版では /パターン を入力してEnterを押すと正規表現で検索し、n で次の一致を探します。通常のファイルなら b で前の画面に戻れますが、パイプ入力ではこの操作は使えません。

more changelog.txt

コマンド出力を渡してみる

コマンドの標準出力が長いときは、パイプで more に渡せます。例の dmesg はカーネルメッセージを表示しますが、システムの設定によって閲覧権限が必要です。権限不足の場合は、自分が読めるテキストファイルでページ表示を試してください。

dmesg | more

ページ境界表示の理解

more sample.txtは1画面ずつ内容を表示し、次の入力を待ちます。出力の最後に進行状況や--More--の表示が現れることがあります。

more sample.txt

例の状態表示:

--More--(50%)

Spaceは次の画面、Enterは次の行、qは終了に使用します。表示形式や戻ることができるかどうかは、実装や入力がファイルかパイプかによって異なります。

主なオプション

オプション 説明
-d 使用可能なキーの案内と誤ったキーのメッセージを表示します。
-s 連続する空行を1行にまとめて表示します。
-f util-linux版では、折り返し後の画面行ではなく、改行で区切られた論理行を数えます。
-num 画面あたりに表示する行数を指定します。
+num 指定した行から表示を開始します。
+/pattern 最初に一致するパターン付近から開始します。

実践的活用例

特定の行から開始する

実装でサポートされている +行番号 形式で長いファイルの関心ポイントから表示します。

more +200 server.log

検索結果付近から開始する

パターンにシェルの特殊文字がある場合、引数を引用符で囲みます。

more +/'ERROR' server.log

空行を圧縮して読む

空行が多い出力では-sがスクロール量を減らしてくれます。

more -s report.txt

moreと関連コマンドの比較

コマンド 主な役割 適した状況
more 単純なページ表示 基本的な順方向読み
less 双方向ナビゲーションと豊富な検索 長いファイルの分析
cat 全体を即時出力 短いファイル
head 前部分だけ出力 形式とヘッダーの素早い確認

使用する際の注意点

実装ごとの差を確認する

util-linux、BSD など実装によって移動キーとオプションが異なるためman moreで確認します。

パイプ入力では移動が制限される場合があります

通常のファイルと異なり、標準入力では既に過ぎた部分に戻る機能が制限される場合があります。

出力の加工には別のコマンドを選ぶ

対話型ページャーであるため、スクリプトで結果を加工するにはhead、sed、awk などを使用します。

FAQ

moreで終了するにはどうすればいいですか?

qを押します。

1行ずつ移動するにはどうすればいいですか?

通常はEnterキーを使用します。

moreとlessのどちらを使うのがよいですか?

単純な順方向の閲覧ならmoreで十分ですが、検索や前後移動を多用する場合はlessコマンドの使い方が参考になります。

特定の行から開始できますか?

対応している実装ではmore +行番号 ファイル形式を使用できます。

参考資料