名称
more, page ― CRT 上でのファイル精読用フィルタ
構文
more [-n] [-cdefisuvz]
[-n number] [-p command] [-t tagstring] [-x tabs] [-W option] [+ linenumber] [+/ pattern] [name ...]
page [-n] [-cdefisuvz]
[-n number] [-p command] [-t tagstring] [-x tabs] [-W option] [+ linenumber] [+/ pattern] [name ...]
特記事項
pg は、一部の標準では推奨されており、また若干の追加機能も
備えていますが、文字の強調表示はサポートしていません ( pg(1) 参照)。
説明
more は、ソフトコピーターミナルで長い連続したテキストを
1 度に 1 画面ずつ読むためのフィルタです。 more は pg と非常によく似ており、主に後方互換性を保つために残されています。 more は通常、1 画面分のテキストを表示した後に、画面の一番下にファイル名を表示して実行を一時停止します。さらに 1 行表示するには、 <Return> を押します。もう 1 画面分テキストを表示するには、スペースバーを押します。
その他の操作については後で説明します。
more と page の相違はごくわずかです。 more は、次のページを表示する際に画面を上方にスクロールします。 page は、新しいページを表示するときに、画面をクリアして 新しい 1 画面分のテキストを表示します。どちらも、1 画面ごとに 1 行重複させます。
name には、ファイル名か、または標準入力を表す - のいずれかを指定できます。 more はファイル引き数を指定された順に処理します。
more は基本正規表現構文をサポートします
( regexp(5) 参照)。
more で指定できるコマンド行オプションは次のとおりです。
| -n number | | 表示ウィンドウ内の行数を正の 10 進整数 number に設定します。デフォルトは、ターミナルの表示行数より 1 行少ない数です。つまり、 24 行表示する画面では、デフォルトは 23 です。 -n フラグは、環境から得られるどの値よりも優先されます。 |
| -n | | 行数が n に設定されるのを除いて -n number と同じです。 |
| -c | | 各ページの表示を画面の一番上から始め、 各行に新しい行を表示する直前に前の行を消去します。
これにより画面のスクロールが抑止されるので、 more での書き出し中もテキストが読みやすくなります。
このオプションは、ターミナルに行末までのクリア機能がない場合は無視されます。 |
| -d | | 1 画面分表示するごとに、メッセージ Press
space to continue, q to quit, h for help を表示し、ユーザに次の入力を要求します。
このオプションは、操作に不慣れなユーザが多いトレーニングクラスのような状況で more をフィルタとして用いる場合に便利です。 |
| -e | | 引き数リストの最後のファイルの最後の行を 書き込んだ後直ちに終了します。 |
| -f | | 表示行数ではなく論理行数で行を処理します。つまり、長い行を折り返しません。 nroff の出力をパイプで ul に引き渡す場合、 ul はエスケープシーケンスを生成する可能性があるので、
このオプションを使用するのが適当です。 エスケープシーケンスを構成する文字の中には、画面上の位置は占めても
エスケープシーケンスの一部としてターミナルに送られた場合には 表示されない文字があります。そのような場合、 more は行を実際よりも長いものと解釈し、誤って行を折り返してしまうことがあります。 |
| -i | | 検索時のパターンマッチングにおいて大文字と小文字を区別しません。 |
| -s | | 出力中の複数の空白行を 1 行の空白行に圧縮します。これは特に nroff の出力を表示するときに便利です。このオプションを指定すると、
画面を有効に利用して最大の情報を表示することができます。 |
| -u | | 通常 more は、 nroff などによって生成される下線表示やボールド体を
個々のターミナルの特性に合致した方式で処理します。 つまり、ターミナルに下線処理のサポート機能があるか、
または強調表示 (普通は反転表示) モードがある場合は、 more は適切なエスケープシーケンスを出力し、ソースファイル中の下線付き情報を
下線処理または強調表示できるようにします。 また、ターミナルが強調表示をサポートしている場合は、 more は、ボールド体で表示すべき情報に強調表示モードを使用します。 -u オプションはこの処理を抑止します ("ul"
および "os" terminfo フラグと 同様の機能です)。 |
| -v | | 印刷不能文字をグラフィック表示しません。デフォルトですべての 非 ASCII 文字および制御文字 ( <Tab> 、 <Backspace> 、
および <Return> を除く)
は <Ctrl-x> は ^X、 非 ASCII 文字 x は、 M-x として表示されます。 |
| -z | | -v を指定しないのと同じです。だたし、 <Backspace> は ^H、 <Return> は ^M 、 および <Tab> は ^I と表示されます。 |
| -p command | | 検査する各ファイルに対して、最初に command 引き数内の more コマンドを実行します。
コマンドが、行数や正規表示検索など、位置設定コマンドならば、 ファイルの途中の行を表示せずに、
現在位置をコマンドの最終結果を表すよう設定します。 位置設定コマンドが失敗した場合、ファイルの最初の行が現在位置となります。 |
| -t tagstring | | tagstring 引き数で指定されたタグを含むファイルを 1 画面分書き込みます。
指定されたタグは現在位置に現れます。 -p と -t オプションが両方とも指定されていると、 more は、最初に -t、 を処理します。つまり、 -t によって を含むファイルが
選ばれてからコマンドが実行されます。 |
| -x tabs | | タブを tabs 毎に設定します。 tabs 引き数のデフォルト値は、8 です。 |
| -W option | | more コマンドの拡張オプションです。現在次の 2 つのオプションがサポートされています。 | notite | | more が、ファイルを表示する前にターミナル初期化文字列を送るのを抑止します。
この引き数は、 more が終了する前にターミナル初期化解除文字列を送るのも抑止します。 | | tite | | more が初期化および初期化解除文字列を送るようにします。これがデフォルトです。 |
|
| +linenumber | | 現在位置が linenumber に設定されるようリスト表示を開始します。 |
| +/pattern | | 現在行が、正規表示 pattern に一致する行の 2 行上からリスト表示を開始します。 注: エディタとは異なり、この構造は / で終わってはなりません。
'/ 'で終わると、 このスラッシュは検索パターンの 1 文字として解釈されます。 |
画面に表示される行数は、指定されていれば -n オプションで決まり、指定されていなければ環境の値から決まります。
最後の行には、ユーザープロンプトとユーザー入力に使われるので 実際に書かれる行数は、この数字より 1 少ない値です。
行当たりの桁数は、環境の値より決定されます。 more は、この値より長い行は、複数の論理行に折り返します。この際、最後の行を除いて
各行は桁数分の文字を含みます。論理行は互いに独立して書かれます。つまり、
1 つの行に作用するコマンドは、個々の行に別々に作用します。
行数と桁数を決定する際、上記の方法で数字が得られなければ more は、terminfo
記述子ファイル ( term(4) 参照) を使用します。 これも失敗した場合、行数は 24、桁数は 80 に設定されます。
標準出力がターミナルで -u が指定されていない場合。 more は、バックスペース文字と改行文字を特別扱いします。
文字の後最初にバックスペース文字、次に下線 (_) が続くと、
ターミナルがサポートしていれば、その文字は下線付き文字として書かれます。
下線の後バックスペース文字、そして任意の文字と続けた場合も、ターミナルが
サポートしていれば、その文字が下線付き文字として書かれます。
二つの同一印刷可能文字の間にバックスペース文字があると、ターミナルがサポートしていれば
最初の文字が太字として書かれ、2 番目の文字は捨てられます。 その後すぐに同一文字のバックスペース/文字対が続く場合、それらも捨てられます。
その他のバックスペース文字シーケンスは、直接ターミナルに書かれ、
通常これはバックスペースの前の文字の表示を抑止します。
行末の改行文字は、制御文字として書かれずに無視されます。
標準出力がターミナル装置でなければ、 more は、引き数リストの最後のファイルの end-of-file
に到達すると必ず終了します。 最後のファイル以外のファイルでは、 more は、プロンプトを出してファイルの最後に到達したことを示すとともに、次のファイル
の名前を通知します。最後に指定されたファイルに対して、またはファイルが指定されていない
場合は、標準入力に対して more はファイルの終りを示すプロンプトを出して次のコマンドを受け付けます。次の
コマンドが前方スクロールを指定する場合、 more は終了します。 -e オプションが指定されていれば、 more は、最後のファイルの最後の行を書いたあと直ちに終了します。
more は、環境変数 MORE を使用して任意のフラグをあらかじめセットします。したがって MORE 変数は、コマンド行と同じように、前にハイフンがつき、空白で区切られたフラグおよび引き数を含む
文字列を設定します。コマンド行のフラグおよび引き数は、 MORE 変数内のものが処理されてから処理されます。つまり、コマンド行が次のようになっているのと同じです。
more $MORE flags arguments
例えば、 -c モードでファイルを表示するために、シェルのコマンドシーケンス
または csh コマンド
を実行すると、 man や msgs のようなプログラムから起動される場合も含めて、すべての more の起動でこのモードが使用されるようになります。 MORE 環境変数を設定するコマンドシーケンスは、通常は .profile または .cshrc ファイルに記述します。
次の説明では、 current position は 2 つのことを意味します。
画面上で現在位置に相当する行は、画面の 3 行目です。これが不可能ならば (表示が 3 行未満か、
ファイルの最初のページか、最後のページの場合)、現在位置は、画面上の最初の行か最後の
行です。
more が表示を休止したときに入力可能なその他のシーケンスとその結果を以下に示します
( i は任意指定の整数引き数で、デフォルトは 1 です)。
| i<Return> | | |
| ij | | |
| i<Ctrl-e> | | |
| i<Space> | | i 行前方へスクロールします。 <Space> の場合のデフォルトの i は 1 画面です。 j と <Return> の場合は 1 行です。 i が画面サイズを越える場合も i 行全体が書かれます。end-of-file では、 <Return> によって more はリスト内の次のファイルを続けるか、現在のファイルがリストの最後のファイルなら
終了します。 |
| id | | |
| i<Ctrl-d> | | 前方へ i 行スクロールします。デフォルトは、画面サイズの半分です。 i が指定されていると、それは以降の d および u コマンドの新しいデフォルトとなります。 |
| iu | | |
| i<Ctrl-u> | | 後方へ i 行スクロールします。デフォルトは、画面サイズの半分です。 i が指定されていると、それは以降の d および u コマンドの新しいデフォルトとなります。 |
| ik | | |
| i<Ctrl-y> | | 後方へ i 行スクロールします。デフォルトは 1 行です。 i が画面サイズを越えていても i 行全体が書かれます。 |
| iz | | さらに i 行表示して新しいウィンドウ (画面) サイズを i に設定します。 |
| ig | | ファイルの i 行目へ行きます。デフォルトは、1 行目 (ファイルの先頭) です。その行が現在位置
になるよう画面をスクロールするか書き直します。 i が指定されていなければ、 more はファイルの最初の 1 画面分を表示します。 |
| iG | | ファイルの i 行目へ行きます。デフォルトはファイルの終りです。 i が指定されていなければ、ファイルの最後の行が画面の一番下に
なるよう画面をスクロールするか書き直します。 i が指定されていれば、その行が現在位置になるよう画面を
スクロールするか書き直します。 |
| is | | 前方へ i 行スキップします。デフォルトは 1 で、次の 1 画面分をその行から書き始めます。 i の結果、書かれる行数が 1 画面未満になるような現在位置になる場合は、
最後の 1 画面分が書かれます。 |
| if | | |
| i<Ctrl-f> | | 前方へ i 行移動します。デフォルトは、1 画面分です。end-of-file では、 more は、続けてリスト内の次のファイルを処理するか、現在のファイルがリスト内の
最後のファイルであれば終了します。 |
| ib | | |
| i<Ctrl-b> | | 後方へ i 行移動します。デフォルトは、1 画面分です。 i が画面サイズを越える場合は、最後の 1 画面分だけが書かれます。 |
| q | | |
| Q | | |
| :q | | |
| :Q | | |
| ZZ | | more を終了します。 |
| = | | |
| :f | | |
| <Ctrl-g> | | 現在表示しているファイルの名前、表示する総ファイル数内の現在のファイル数、現在の行数、
現在のバイト数、書き込む総バイト数、および現在位置までのファイルの割合を書きます。
これらの項目は、すべて最後に書かれた行に続く行の先頭のバイトを基準にしています。 |
| v | | 現在表示しているファイルを編集するためにエディタを起動します。エディタの名前は、
環境変数 EDITOR から得ます。デフォルトは、 vi です。 EDITOR が vi か ex の場合、起動時にエディタの現在行が more の現在行に対応する物理行になるオプションでエディタが起動されます。 エディタが終了すると、 more は、現在行が現在位置となるよう画面を書き直して現在のファイル
を再開します。 |
| h | | more のすべてのコマンドの説明を表示します。 |
| i/[!]expression | | ファイルを前方に検索して正規表現 expression を含む i 番目の行を探します。 i のデフォルトは、1 です。検索は、現在位置の次の行から開始されます。
検査が成功すると、検索対象行が現在位置になるよう画面が変更されます。
ヌル正規表現 (/<Return>) は、以前の正規表現を使用して検索を繰り返します。文字 ! が含まれていると、検索対象行は、 expression を含まない行となります。 expression の出現回数が i 未満で、入力がパイプではなくファイルである場合、ファイル内での位置は、
変わりません。 正規表現の編集には、ユーザの消去文字および取り消し文字を使用できます。
第 1 カラムより前までを消去しようとすると、検索コマンドが取り消されます。 |
| i?[!]expression | | / と同じです。ただし、ファイルを後方に検索して正規表現 expression を含む i 番目の行を探します。 注: エディタとは異なり、 ?. 構造は / で終わってはなりません。
'/'で終わると、 このスラッシュは検索パターンの 1 文字として解釈されます。 |
| in | | 最後の検索を繰り返して 最後の を含む (または最後の検索が /! または ?! の場合は を含まない) i 番目 (デフォルトは 1) の行を探します。 |
| iN | | 最後の検索を逆方向に繰り返して 最後の を含む i 番目 (デフォルトは 1) の行を探します。 |
| '' | | (2 つのアポストロフィ) 最後の大きな移動コマンドを実行した位置に戻ります
(「大きな移動」とは、1 画面分を越える行の移動を意味します)。そのような移動
が行われていなければ、ファイルの先頭に戻ります。 |
| !command | | シェルを起動して command を実行します。 command 内の % と ! は、それぞれ現在のファイル名と直前のシェルコマンドに置き換えられます。
現在のファイル名が存在しない場合には、 % は展開されません。 \% および \! というシーケンスは、それぞれ % および ! に置き換えられます。 |
| :e [file] | | |
| E [file] | | 新しいファイルを調べます。 file 引き数が指定されていなければ、コマンド行のファイルのリストから"current"ファイル ( :n および :p コマンドを参照) が再び調べられます。
ファイル名は、シェル単語展開の対象となります。 file が # (シャープ記号) 文字ならば、前に調べたファイルをもう一度調べます。 |
| i:n | | 次のファイルを調べます。 i が指定されていれば、コマンド行の i 番目の次の行を調べます。 |
| i:p | | 最後のファイルを調べます。 i が指定されているとコマンド行で指定された i 個前のファイルを調べます。 |
| :t tagstring | | 指定された tagstring へ移動し、その行が現在位置になるよう画面をスクロールするか書き直します。 |
| m letter | | 指定した文字で現在位置をマークします。 letter は、ポータブル文字セットの小文字を表します。 |
| ' letter | | 以前に文字 letter でマークされた位置に戻り、その行を現在位置にします。 |
| r | | |
| <Ctrl-l> | | 画面をリフレッシュします。 |
| R | | 画面をリフレッシュしてバッファされている入力を破棄します。 |
| . | | (ドット) 直前のコマンドを実行します。 |
| ^\ | | テキストの一部の表示を停止します。 more は出力の送信を停止し、通常のプロンプトを表示します。
出力の一部が失われる場合もあります。 |
これらのコマンドはただちに機能します。つまり <Return> を押す必要はありません。コマンド文字自体を入力する前であれば、
行取り消し文字を使用して先に指定した数値引き数を取り消すことができます。
標準出力がテレタイプでない場合、 more は、複数のファイルが指定されたときに
各ファイルの前にヘッダを出力する点を除いて、 cat(1) と同じように動作します。
more は SIGWINCH シグナルをサポートしており、ウィンドウの大きさの変更時には
スクリーンを再表示します。
多言語化対応
環境変数
| COLUMNS | | システム指定水平画面サイズを変更します。 |
| EDITOR | | エディタを選ぶために v コマンドで使用します。 |
| LANG | | 未設定かヌルのインターナショナル変数のデフォルト値を与えます。 LANG が未設定かヌルならば、デフォルト値"C"
( lang(5) 参照)
が使われます。いずれかのインターナショナル変数に無効な設定が含まれていると more は、すべてのインターナショナル変数が"C"に設定されているとみなします。 environ(5) 参照。 |
| LC_ALL | | 空でない文字列に設定されていると、他のすべてのインターナショナル変数
の値を変更します。 |
| LC_CTYPE | | テキストの解釈をシングルバイトとするかマルチバイトとするか、またはその両方とするか、
文字を印刷可能とするか、および正規表現の文字クラス表現と一致する文字を決定します。 |
| LC_MESSAGES | | 標準エラーに書かれる診断メッセージ、および標準出力に書かれる情報メッセージ
のフォーマットと内容を規定するために使用する地域を決定します。 |
| NLSPATH | | LC_MESSAGES の処理に使用するメッセージカタログの場所を決定します。 |
| LINES | | 1 画面分の行数として使われているシステム指定垂直画面サイズを変更します。 -n オプションは、1 画面分の行数を決める上で LINES 変数に優先します。 |
| MORE | | コマンド行と同じように、前にハイフンがつき、ブランク文字で区切られたオプションを含む
文字列を規定します。コマンド行オプションは、すべて MORE 変数のオプションの後に処理されます。 MORE 変数は、1 画面分の行数を決定する上で TERM および LINES 変数に優先します。 |
| TERM | | ターミナルタイプの名前を規定します。 |
サポートされるコードセット
シングルバイトおよびマルチバイトの文字コードセットがサポートされます。
アプリケーション使用法
標準出力が、ターミナルではない場合、フィルタ変更オプションはいずれも効力がありません。これは、慣例的な使用に準拠しています。例えば、 man の代表的な処理系は、その出力を more -s により、空白文字が多用されないようにパイプします。
しかし、 man が lp にパイプされた場合、予期しない結果になります。
例
普通の単純なファイルを表示するには、次のコマンドを指定します。
nroff の出力を表示するためには、次のようなコマンドを指定します。
nroff -mm +2 doc.n | more -s
ファイルの中に表がある場合は、次のコマンドを指定します。
tbl file | nroff -mm | col | more -s
15 行の大きさのウィンドウにファイル stuff を表示し、隣接する複数の空白行を 1 行の空白行に変換するには、
次のコマンドを指定します。
各ファイルを最後の 1 画面分で調べるには、次のコマンドを指定します。
行 100 を現在位置 (3 行目、つまり行 98 が最初に書かれる行) にして各ファイルを調べるには、次のコマンドを指定します。
タグ文字列 tag を含むファイルを行 30 を現在位置にして調べるには、次のコマンドを指定します。
警告
標準エラー、ファイル記述子 2 は、対話形式での使用時には通常は入力に使用される ため、リダイレクトしてはなりません (使用しているシェルのマンページにある
入出力の項を参照してください)。
ファイル
| /usr/share/lib/terminfo/?/* |
| | | コンパイル済みのターミナル機能データベース |
著者
more は、Mark Nudleman、カリフォルニア大学バークレー校、OSF、および
HP で開発されました。
参照
csh(1), man(1), pg(1), sh(1), term(4), terminfo(4), environ(5),
lang(5), regexp(5)