「less」コマンドを使用しながら特殊文字を表示する方法を知りたいです。たとえば、印刷できない文字を特別な表記で見たいです。たとえば、 'vi'エディターで「set list on」を使用して、ドル「$」文字で表される行終了文字を表示します。同様に、「less」コマンドを使用してこれを行いたいと思います。
私はUnixのマニュアルを少なくしましたが、役に立ちませんでした。
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
これがお役に立てば幸いです。
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
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
を参照してください。
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
にパイプして、任意の文字を目的の文字に置き換えて表示することができます。
すべての特殊な印刷不能文字は、lessで^表記を使用して表示されます。ただし、改行は実際には印刷可能であるため(新しい行を作成するだけです)、特別なものとは見なされないため、置換に問題が生じます。行末だけを見たい場合、最も簡単な方法は
sed -e 's/$/$/' | less