如何从日志文件创建.html文件?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (253)

我需要一个脚本,可以将日志文件转换为易于查看的.html文件,“任何人”都可以访问。

我的代码:

#!/bin/bash

## The purpose of this script is to create .html files from log files, with the ability to optionally GREP for certain strings

if [ "$2" == "" ];
then
        echo "Usage : $0 [Source Log file] [Output HTML file] [String to grep (if applicable)]"
        exit 255
fi;

LOGFILE=$1
OUTPUTFILE=$2
GREPSTRING=$3

if [ "$3" == "" ];
then
        echo "Cat'ing $LOGFILE to $OUTPUTFILE"
        LOGCONTENTS=`cat $LOGFILE`

else
        echo "Grep'ing for $GREPSTRING in $LOGFILE"
        LOGCONTENTS=`grep --color $GREPSTRING $LOGFILE | sed -e "s/^.*$/&1\n/"`
fi;

# Below is the html heading which will be appended to the final .html file
HEADING="<html><body><h1>Log output for: $LOGFILE</h1>"

# Below is the end of the html file
END="</body></html>"

# Below all the prepared variables are stitched together to the OUTPUT/LOG FILE
echo $HEADING > $OUTPUTFILE
echo $LOGCONTENTS >> $OUTPUTFILE
echo $END >> $OUTPUTFILE


# For debugging, enable the lines below
echo $LOGCONTENTS
echo "Done preparing $OUTPUTFILE"
提问于
用户回答回答于

你可以使用ccat来实现此目的,如果你在Ubuntu上,请先安装它,然后将日志文件转换为html文件,如下所示:

ccat check_valgrind_log.log --html > check_valgrind_log.html

我使用这个包将val研日志转换为html文件,它提供了一个很好的颜色输出。

用户回答回答于

由于你要使用HTML,因此需要将换行符(使用sed或其他)替换为HTML换行符。 HTML通常在自由流动的文本中忽略CR / LF字符。

所以你可以使用如下的sed。 我删除了1s,因为他们的目的没有解释,但如果你需要,你可以把它们放回去。

if [ "$3" == "" ];
then
        echo "Cat'ing $LOGFILE to $OUTPUTFILE"
        LOGCONTENTS=`sed -e "s/^.*$/&<br\/>/" $LOGFILE`

else
        echo "Grep'ing for $GREPSTRING in $LOGFILE"
        LOGCONTENTS=`grep --color $GREPSTRING $LOGFILE | sed -e "s/^.*$/&<br\/>/"`
fi;

扫码关注云+社区

领取腾讯云代金券