時々、lessはファイルをバイナリファイルとして誤って識別し、LHSに16進ダンプを表示しようとします(通常は英数字以外の文字を含むが印刷可能なASCII文字を含む)。ファイルをテキストとして認識させるにはどうすればよいですか?
答え1
私はあなた(またはあなたのディストリビューション)がすでに次のためLESSOPEN
にフィルタを使用していないと言ったようです。less
less
less -L my_binary_file
さらに詳しく知りたい場合は、試してみることもできますecho $LESSOPEN
。/usr/bin/lesspipe
これには、どのタイプのフィルタがあるかを確認するために読み取ることができるシェルスクリプト(私の場合)の名前を含めることができます。また試してみてくださいman less
、そして読んでください入力プリプロセッサ部分。
答え2
LESSOPEN
これが問題にならない状況の場合。less
次のオプションを試すことができます。
-f
または--force
: 一般的でないファイルを開くことを許可することに加えて、「バイナリファイルを開くときに警告メッセージも表示しません」-r
または:「元の制御文字が表示されます。デフォルトは、--raw-control-chars
キャレットを使用して制御文字を表示することです。たとえば、control-A(8進数001)はと表示されます^A
。-r
文字を追跡することはできません。したがって、画面の外観(各制御文字の種類に画面がどのように反応するかによって異なります)は、長い行が間違った場所に分割されるなど、さまざまな表示問題を引き起こす可能性があります。-R
または:「生」形式で出力されるANSI「色」エスケープシーケンスのみを含む--RAW-CONTROL-CHARS
上記の弱い形式です。-r
-rとは異なり、ほとんどの場合、画面の外観は正しく維持されます。たとえば、ANSIカラーコントロールシーケンスを使用するログファイルを表示したい場合に便利です。
キーを押して-から、rもう一度実行せずに試してみることができますless
。これらのオプションをLESS
環境変数に追加して、設定を永久に作成できます(たとえば、シェル構成ファイルの変更)。端末で色を表示できる場合は、その設定を設定に追加することをお勧めします-R
。LESS
端末がテキストファイルと同じ文字エンコーディングを使用するように構成されていることを確認する必要があります。