2011-08-04 4 views
56

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

私はUnixをあまりマニュアルにしませんでしたが、役に立たなかったのです。

答えて

56

LESS

という名前の変数がある場合、最も簡単な方法は、あなたは〜の1にLESSを設定することができます可能性があります/ .profile(.bash_rc、etc、etc)を実行し、コマンドラインからlessを実行すると、LESSが見つかります。これは私が使用して設定され、この

export LESS="-CQaix4" 

を追加

しようとすると、その中に埋め込まれたいくつかの振る舞いがあります

あなたを混乱させる、そう...かもしれあなたはこれらのすべては何を意味するかを知ることができますlessのヘルプ機能から、 'h'キーをタップして鼻をたたくか、less --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 

これが役立ちます。出力は次のようになり-Uスイッチなし

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

(END) 

+15

'cat'の情報が役立ちます。説明できないレッスンオプションはあまり役に立ちません。あなたがそれらを削除した場合、私はそれらが質問に関連しているとは思わないので、これはより良い答えになります。 – ijw

45

あなたが行うことができます猫とそのパイプへの出力と少ない:

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 
+9

...または 'cat -eT yourfile |タブ文字を見たい場合は「less」を選択します。 –

+2

正確かつパイントに。私の一日を保存しました – Ali

+2

誰かが同じ問題を抱えていると、大文字Tに問題がありました。 '' cat -et yourfile |それはうまくいくはずです –

0

全ての特別な、印字不可能な文字を使用して表示されます^以下の表記法。しかし、改行は実際には印刷可能です(改行してください)。特別なものではないので、改行に問題があります。あなただけの行末を見たい場合は以下を参照するには、その環境に見ていきます

sed -e 's/$/$/' | less 
5

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

fobar baz 

(END) 

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

関連する問題