答え1
ストライプ出力は長い行の読み取りに役立ちます
編集2:
標準ログファイルを監視する専用ツール を見つけましたksystemlog
。これはログファイルを監視する最良の代替手段かもしれません。1行おきにハイライト表示したり、テキストウィンドウを「ストライプ」表示したり、その他のこともできます。次のリンクを参照してください。
https://apps.kde.org/ksystemlog/
https://www.ubuntupit.com/best-linux-log-viewer-and-log-file-management-tools/
リポジトリUniverseからインストールできます。
sudo apt update
sudo apt install ksystemlog
この回答では他の選択肢も残しておきます。ログ ファイル以外の目的でこのようなツールが必要になる場合があり、、sed
ANSI シーケンス、およびを使用した方法はless
非常に大きなテキスト ファイルでも機能するからです。私はビューアを知っていますless
が、私にとってはうまく機能します。
そしてついに私は見つけたglogg
上記の 2 番目のリンクにもあります。また、非常に大きなテキスト ファイルを表示することもできますが、1 行おきにハイライト表示されず、「ストライプ」も表示されないようです。(glogg
のテキスト モード インターフェイスよりも、の GUI の方が好みかもしれませんless
。)
sudo apt update
sudo apt install glogg
編集1:
呼び出すことができる次のシェルスクリプトを試すことができますrandig
。ANSI エスケープ シーケンスを使用して色をレンダリングし、less
結果を表示します。表示するファイルは、シェルスクリプトのパラメータとして入力されます。
また、を使用するとxterm
、sed
(元のツールよりも)より高速で目に優しいツールになります。
#!/bin/bash
# xterm -fs 14 sets the font size
# xterm -bg '#2b2c2b' -fg '#dbdcdb' is grey background and white foreground
# ANSI:
# 'esc[33;40m' is yellow/brown on black background
# 'esc[0m' resets video
if test -s "$1"
then
tmpfile=$(mktemp)
sed -e "s/^/$(echo -en '\0033[33;40m')/;s/$/$(echo -en '\0033[0m')/;n" "$1" > "$tmpfile"
xterm -title "${0##*/} $1" -fa default -fs 14 -bg '#2b2c2b' -fg '#dbdcdb' -e less -r "$tmpfile" 2> /dev/null
rm "$tmpfile"
else
echo "
Usage ${0##*/} <text-file>
striped output helps reading long lines"
fi
シェルスクリプトを実行可能にする
chmod +x randig
そしてそれをローカルで使う
./randig file-to-view
または、ディレクトリに移動してPATH
「どこでも」使用できるようにします
randig file-to-view
コメント:
行の折り返しはビューアに問題を引き起こす
less
ため、可能であれば、行が折り返されずに表示されるようにウィンドウを十分に広くしてください。をインストールする必要がある場合があります
xterm
。sudo apt update sudo apt install xterm
あなたの目に最も合うようにフォントサイズと色を編集してください:-)
例:
randig randig
編集終了
元のシェルスクリプト:
#!/bin/bash
blueback="\0033[1;44m"
whitefore="\0033[1;37m"
yellowfore="\0033[1;33m"
resetvid="\0033[0m"
inv=true
########################################################################
function doit {
ifs0=$IFS
IFS=$'\n'
while read -r line
do
if $inv
then
inv=false
echo -en "$yellowfore"
echo -E "$line"
else
inv=true
echo -en "$whitefore"
echo -E "$line"
fi
# sleep .5
done < "$1"
IFS=$ifs0
}
########################################################################
# main
########################################################################
echo -en "$blueback"
doit "$1" | less -r
echo -en "$resetvid"
例:
./randig randig