web-dev-qa-db-ja.com

「less」コマンドの使用中にUnixで特殊文字を表示する

「less」コマンドを使用しながら特殊文字を表示する方法を知りたいです。たとえば、印刷できない文字を特別な表記で見たいです。たとえば、 'vi'エディターで「set list on」を使用して、ドル「$」文字で表される行終了文字を表示します。同様に、「less」コマンドを使用してこれを行いたいと思います。

私はUnixのマニュアルを少なくしましたが、役に立ちませんでした。

67
Kingsly

lessは、環境内でLESSという名前の変数があるかどうかを確認します。

〜/ .profile(.bash_rcなど)のいずれかでLESSを設定すると、コマンドラインからlessを実行すると、LESSが検出されます。

これを追加してみてください

 export LESS="-CQaix4"

これは私が使用するセットアップです。混乱させるかもしれないいくつかの動作が組み込まれているので、...

これらすべてがlessのヘルプ機能から何を意味するかを知るには、「h」キーをタップして鼻をかざすか、-helpを実行します。

編集

ヘルプを見て、-rオプションもあることに気付きました

-r  -R  ....  --raw-control-chars  --RAW-CONTROL-CHARS
                Output "raw" control characters.

私は猫があなたの述べられたニーズに最も正確に一致するかもしれないことに同意します。

 cat -vet file | less

各行の最後に「$」を追加し、タブ文字を視覚的な「^ I」に変換します。

 cat --help
   (edited)
    -e                       equivalent to -vE
    -E, --show-ends          display $ at end of each line
    -t                       equivalent to -vT
    -T, --show-tabs          display TAB characters as ^I
    -v, --show-nonprinting   use ^ and M- notation, except for LFD and TAB

これがお役に立てば幸いです。

63
shellter

Catでそれを行うことができ、出力をlessにパイプします。

cat -e yourFile | less

man cat からの抜粋は、-eの意味を説明しています。

   -e     equivalent to -vE

   -E, --show-ends
          display $ at end of each line

   -v, --show-nonprinting
          use ^ and M- notation, except for LFD and TAB
52
Costi Ciudatu

lessの場合、-uを使用してキャリッジリターン(^M)とバックスペース(^H)を表示するか、-Uを使用して前のタブとタブを表示します(^I) 例えば:

$ awk 'BEGIN{print "foo\bbar\tbaz\r\n"}' | less -U 
foo^Hbar^Ibaz^M

(END)

-Uスイッチがない場合、出力は次のようになります。

fobar   baz

(END)

機能の詳細については、man lessを参照してください。

13
James Brown

https://stackoverflow.com/a/6943976/7154924 と同じ精神で:

cat -A

-A, --show-all
       equivalent to -vET
-v, --show-nonprinting
       use ^ and M- notation, except for LFD and TAB
-E, --show-ends
       display $ at end of each line
-T, --show-tabs
       display TAB characters as ^I

あるいは、または同時に、trのようなページャーにパイピングする前に、必要に応じてlessにパイプして、任意の文字を目的の文字に置き換えて表示することができます。

1
flow2k

すべての特殊な印刷不能文字は、lessで^表記を使用して表示されます。ただし、改行は実際には印刷可能であるため(新しい行を作成するだけです)、特別なものとは見なされないため、置換に問題が生じます。行末だけを見たい場合、最も簡単な方法は

sed -e 's/$/$/' | less
0
thiton