lessにファイルをテキストとして表示させる


14

時々、ファイルをバイナリとして誤って認識せず、LHSでhexdumpを表示しようとします(通常は、英数字以外の文字を含むが印刷可能なASCII文字を含むもの)。テキストとして認識させるにはどうすればよいですか?


別の答えを探しています。cat somefileASCIIとして表示されるログファイルがありますが、less somefileバイナリであると表示され、そのように表示されます。echo $LESSOPEN空でless -L助けにはなりません。
ネイサンロング

2
@NathanLongここでの解決策はあなたの問題を解決しないので、新しい質問を開くのにこれはおそらく受け入れられるでしょう(ちょうどそれを注意してください)。しかし、「バイナリであり、そのように表示される」と言うとき、それはデータの16進表現を表示すると言っているのですか、それとも生のバイナリデータ(すべての奇妙なシンボルなど)を見ているのですか?
パトリック

LHSとは何ですか?それは私にとって新しいです。
dfc

回答:


19

私はあなたが持っている(またはあなたのディストリビューションが持っている)LESSOPENフィルタを設定していると思いますless。以下を試してless、フィルターを使用しないように指示してください。

less -L my_binary_file

さらに調査するには、を試してくださいecho $LESSOPEN。おそらく、シェルスクリプトの名前(/usr/bin/lesspipe私にとっては)が含まれているので、このスクリプトを読んで、どのようなフィルターがあるかを確認してください。また、を試してman less入力プリプロセッサのセクションを読んでください。


4

LESSOPEN問題ではない場合。次のlessオプションを試すことができます。

  1. -fまたは--force:正規でないファイルを開くことを許可することに加えて、「バイナリファイルが開かれたときの警告メッセージも抑制します」。
  2. -rまたは--raw-control-chars:「生の制御文字が表示されるデフォルトキャレット表記を用いた表示制御文字である;例えば、制御-Aは(001進)として表示される。^A警告:とき-rオプションが使用され、以下を追跡することができません(これは、画面が各制御文字にどのように応答するかに依存するため)画面の実際の外観の違いです。
  3. -Rまたは--RAW-CONTROL-CHARS-r上記の弱い形式、ANSI「色」エスケープシーケンスのみが「生」形式で出力されます。「-rとは異なり、ほとんどの場合、画面の外観は正しく維持されます。」これは、たとえばANSIカラーコントロールシーケンスを使用するログファイルを表示する場合に便利です。

キーを押し-てからr再実行せずに実験できますless。これらのオプションをLESS環境変数に追加して、設定を永続的にすることができます(シェルプロファイルファイルを変更するなど)。端末が色を表示できる場合-Rは、LESS設定に追加することを強くお勧めします。端末がテキストファイルと同じ文字エンコードを使用するように構成されていることを確認する必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.