ネット開通

ネット開通しました。
1ヶ月間はネットにいない生活を送っていたんですが、それももう終わりです。

またネットどっぷりの生活を送りたいですね。
今日は、HTML上にプログラムのソースコードとかを載せたい場合の小ネタを。


まずはサンプルから。

#!/usr/bin/perl

use strict;
use warnings;

my $MESSAGE = “/var/log/messages”;
my $SECURE = “/var/log/secure”;
my $HTTP_ACCESS_LOG = “/var/log/httpd/access_log”;
my $HTTP_ERROR_LOG = “/var/log/httpd/error_log”;

my $CHECK_COUNT = “10”;
my $CHECK_LOG =””;

$CHECK_LOG = “====>$MESSAGE<====\n"; $CHECK_LOG .= `tail -$CHECK_COUNT $MESSAGE`; $CHECK_LOG .= "\n====>$SECURE<====\n"; $CHECK_LOG .= `tail -$CHECK_COUNT $SECURE`; $CHECK_LOG .= "\n====>$HTTP_ACCESS_LOG<====\n"; $CHECK_LOG .= `tail -$CHECK_COUNT $HTTP_ACCESS_LOG`; $CHECK_LOG .= "\n====>$HTTP_ERROR_LOG<====\n"; $CHECK_LOG .= `tail -$CHECK_COUNT $HTTP_ERROR_LOG`; print $CHECK_LOG;

例えばこれは超適当に作った主要ログの最新10行を表示するスクリプトなんですが、これはcodeタグとpreタグを用いて表示しても、きちんと表示できません。

というのは、ソース内に”&lt”や”&gt”が含まれているからです。

これだと、いくらcodeやpreを使用しても、ソース内の”&lt”や”&gt”に関してはタグとして認識されてしまうため、きちんと表示できない部分ができてしまいます。

ここで、以下のソースを以下のコマンドでタグ認識部をあらかじめ置換することで、正常に表示することができます。

# sed -e “s/&lt/&lt/g” file

このコマンドの肝は、”&lt”のみを置換しているところにあります。
タグの開始部さえなければ、”&gt”はきちんとソースとして表示してくれるんです。