端末でテキストファイルを見て、そのファイルの番号を強調表示したいと思います。で開くときに取得するのと同じですgedit
。less
、cat
またはvim
他のビューア/編集者と一緒にこれを行うことはできません。
PS:私の質問は簡単ですが、意味のある検索に適したキーワードを見つけることができません。
DIYソリューション
プランA
各番号を一致させ、強調表示して各行を印刷します。
egrep --colour=always '[-+]?[0-9]*[\.e]?[0-9]|$'
ただエイリアスを与えればいいと思います。デフォルトのオプションがあるかどうかを知りたいです。
編集:e
@αГsнιιにexponential、tnxのサポートを追加しました。
プランB
まあ、私の最終的な解決策は次のとおりです。
grep -P --colour=always '(?:^|(?<=[\\, ;\-\+\*\/]))[-+]?[0-9]*[\.eE]?[0-9]+|$'
次の区切り文字または行の先頭を探して、多くの数値形式と行の終わりと一致します(すべての行が印刷されるように)。
最後に、2つの便利なエイリアスv
iewとl
essiewがありますv
。
alias v="grep --colour=always -P '(?:^|(?<=[\\, ;\-\+\*\/]))[-+]?[0-9]*[\.eE]?[0-9]+|$'"
function lv {
v $1 | less -R
}
プランC
より良い正規表現は次のとおりです(一重引用符で使用)。プランB):
(?<![\w\.])[-+]?[0-9]*[\.eE]?\-?[0-9]+|$
この解決策は、英数字以外の点で区切られた記号をすべて考慮します。電子アイテムは普遍性が不足しています。
編集:ソートを表示する-nT
ために行番号を追加しましたgrep
。 Edit2:を追加して負の指数を説明します\-?
。
長い話を短く
これをあなたのに貼り付け、、、~/.bashrc
を使用してください。v
lv
cv
より、視野が少ないと列を見るテキストファイル:
# Highlight numbers when displaying text files
alias v="grep --colour=always -nTP '(?<![\w\.])[-+]?\-?[0-9]*[\.eE]?[0-9]+|$'"
# Send v output to less
function lv {
v $1 | less -R
}
# Convert CSV to TSV and send to lv
function cv {
column -ts, $1 | lv
}
編集:CSVファイルの読み取りショートカットとコメントを追加しました。
答え1
+/-記号の合計にも一致しますe
。
grep -E --color '[-+\.]?[0-9](|[eE][-+]?[0-9]|$)'
これは以下のさまざまな数字と一致します。
12345
-12345
+12345
.12345
12.345
12345.
123e45
123E45
123E+45
123E-45
123e+45
123e-45
答え2
そしてvim
:
:syn on
:syn match Number '\v[-+]?\d*\.?\d+([eE][-+]?\d+)?'
数字だけが必要な場合(少なくともこの形式の数字には、0x123、1,23、0x1ap-2、VII、1,000,000、...)強調表示を追加することもできます。さまざまな言語で提供される多くの構文の強調表示vim
も、その言語が理解している数字を強調表示します。
以下を行う場合:
grep -F '[eE' /usr/share/vim/vim*/syntax/*
科学表記が強調表示されている言語を含む、任意の形式で数字を持つすべての言語を表示できますvim
。
また、どのような状況でこれらの数字を強調表示できるかを決定することもできます。たとえばls.1
、、、、PS1
で1+2
1を-1-
強調表示する必要がありますか?強調しなければならないでしょ1e2
う2e3
か1e2e3
?
答え3
他の可能性:
Colorize, color text
0) reset-no-color (local), Emits sequence to remove (stray) color
echo -e "\[\033[0;00m\]"
1) coforma (local), color for match, add specified color for pattern
matches
2) coteli (local), insert ANSI color codes around line blocks,
COlor TExt LInes
3) spc, "supercat", colorize and print to standard output,
general (but therefore complex) rules for coloring.
Found in Debian repository and at:
https://github.com/tanderson92/supercat
4) ansifilter, convert color codes, etc., to HTML, BBcode, others
http://www.andre-simon.de/
5) my-highlight (local)
http://unix.stackexchange.com/questions/46562/how-do-you-colorize-only-some-keywords-for-a-bash-script
6) my-hilite (local)
http://unix.stackexchange.com/questions/46562/how-do-you-colorize-only-some-keywords-for-a-bash-script
7) hh, easy highlighting, wrapper around ack
https://github.com/paoloantinori/hhighlighter
8) pygmentize, parse and colorize program source file
In Debian package python-pygments
たとえば、次のように実行しました。
spc data1
設定ファイルは .sprcc です。
Cyan cya t ([0-9]+)
取得するには:
Mike Brady 2
Carol 3.1415 Brady
77 Greg Brady
Marcia Brady
ターコイズの数字 - 申し訳ありません。フォーラムでBBCodeやHTMLで色をレンダリングする方法がわかりません。または… - ご提案いただきありがとうございます。
頑張って...乾杯、drl