![條紋輸出有助於讀取長行](https://rvso.com/image/1072220/%E6%A2%9D%E7%B4%8B%E8%BC%B8%E5%87%BA%E6%9C%89%E5%8A%A9%E6%96%BC%E8%AE%80%E5%8F%96%E9%95%B7%E8%A1%8C.png)
答案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 的參數輸入。
使用xterm
andsed
可以製作出更好的工具(比原來的工具),更快、更美觀。
#!/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