ストライプ出力は長い行の読み取りに役立ちます

ストライプ出力は長い行の読み取りに役立ちます

gedit でログ ファイルを確認するより速くて明確な方法があるかどうか疑問に思います。少なくとも、行を交互に強調表示できる場合。

ここに画像の説明を入力してください

答え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

ここに画像の説明を入力してください


この回答では他の選択肢も残しておきます。ログ ファイル以外の目的でこのようなツールが必要になる場合があり、、sedANSI シーケンス、およびを使用した方法はless非常に大きなテキスト ファイルでも機能するからです。私はビューアを知っていますlessが、私にとってはうまく機能します。

そしてついに私は見つけたglogg上記の 2 番目のリンクにもあります。また、非常に大きなテキスト ファイルを表示することもできますが、1 行おきにハイライト表示されず、「ストライプ」も表示されないようです。(gloggのテキスト モード インターフェイスよりも、の GUI の方が好みかもしれませんless。)

sudo apt update
sudo apt install glogg

編集1:

呼び出すことができる次のシェルスクリプトを試すことができますrandig。ANSI エスケープ シーケンスを使用して色をレンダリングし、less結果を表示します。表示するファイルは、シェルスクリプトのパラメータとして入力されます。

また、を使用するとxtermsed(元のツールよりも)より高速で目に優しいツールになります。

#!/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

ここに画像の説明を入力してください

関連情報