答案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
上面的第二个链接中也有。它也可以让你查看非常大的文本文件,但似乎没有每隔一行突出显示,没有“条纹”。(你可能更喜欢的 GUI 而glogg
不是 的文本模式界面less
。)
sudo apt update
sudo apt install glogg
编辑1:
您可以尝试使用以下 shellscript,您可以调用randig
。它使用 ANSI 转义序列来呈现颜色并less
查看结果。要查看的文件作为参数输入到 shellscript 中。
使用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
使 shellscript 可执行
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