小さなファイルの場合は、画面にテキストを保持するには「less」を使用してください。

小さなファイルの場合は、画面にテキストを保持するには「less」を使用してください。

私はずっと前に、いくつかの同僚のシステムで「もっと」を模倣するためにlessコマンドをカスタマイズするのを見たことがあると確信しています。私が望むもの:

  • ファイルが短い場合(1画面未満)、catのように動作する必要があります。ファイルの内容を表示して終了します。

  • ファイルが1つの画面より長い場合は、通常どおり実行され、ユーザー入力を待ち、終了時に画面を消去し、前のコマンドを画面に残す必要があります。

-FXを減らして実験してみましたが、ファイルが大きいと画面に多くの内容が残ります。

ベストアンサー1

私が正しく理解したら、大容量ファイルの代替画面切り替え動作を維持し、単一の画面に収まり、スクロールを必要としない小さなファイルに対してのみ-Xスイッチをオンにしたいと思います。

これは、ドキュメントで引用されたバージョン530のデフォルト動作ですlessNEWSソースコード:

マイナーバージョン487と530の間の主な変更点

  • -F使用とファイルが1画面に収まる場合は、端末初期化シーケンスを出力しないでください。

残念ながら、2019年現在の一部のディストリビューション(Debian 10など)はまだ古いバージョンを使用しているため、以前のバージョンlessから切り替えたくない場合源泉、唯一の解決策はラッパーを使用することです。

以下はそのようなラッパーの例です。既知の制限事項は次のとおりです。ㅏ):n:p次/前のファイル)コマンドは機能しませんless。コマンドラインのすべてのファイルが1つのストリームにリンクされています。雨)/usr/bin/awk実際にはgawk(GNU Awk)またはThomas Dickey以外の入力のNULLバイトを処理できません。

#! /usr/bin/awk -f
BEGIN { "tput lines" | getline max; max -= 2 }
{ l[NR]=$0 }
NR>=max {
        for(i = 1; i <= NR; i++) print l[i] | "less";
        while(getline > 0) print | "less";
}
END { if (NR < max) for(i = 1; i <= NR; i++) print l[i] | "less -FX" }

おすすめ記事