條紋輸出有助於讀取長行

條紋輸出有助於讀取長行

我想知道是否有一種更快、更清晰的方法來檢查 gedit 上的日誌檔案。至少如果可以交替突出顯示線條的話。

在此輸入影像描述

答案1

條紋輸出有助於讀取長行

編輯2:

我找到了一個專用工具,ksystemlog來查看標準日誌檔案。這可能是查看日誌檔案的最佳選擇。它突出顯示每隔一行,“條紋”文字窗口,並且還可以執行其他操作。請參閱以下連結

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也在上面的第二個連結中。它還可以讓您查看非常大的文本文件,但似乎沒有每隔一行突出顯示,沒有“條紋”。 (glogg與 的文字模式介面相比,您可能更喜歡 的 GUI less。)

sudo apt update
sudo apt install glogg

編輯1:

您可以嘗試使用以下 shell 腳本,您可以將其稱為randig.它使用 ANSI 轉義序列來渲染顏色並less查看結果。要查看的檔案作為 shellscript 的參數輸入。

使用xtermandsed可以製作出更好的工具(比原來的工具),更快、更美觀。

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

使 shell 腳本可執行

chmod +x randig

並在本地使用它

./randig file-to-view

或將其移動到目錄中PATH以在“任何地方”使用它

randig file-to-view

評論:

  • 換行會為檢視器帶來問題less,因此,如果可能的話,使視窗足夠寬以顯示沒有換行的線條。

  • 您可能需要安裝xterm

    sudo apt update
    sudo apt install xterm
    
  • 請以最適合您眼睛的方式編輯字體大小和顏色:-)

例子:

randig randig

在此輸入影像描述

編輯結束


原始 shell 腳本:

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

在此輸入影像描述

相關內容