68user's page 掲示板

Prev< No. 3939〜3940> Next  [最新発言に戻る] [過去ログ一覧]
No. 3939 # カトウ [E-mail] 2004/08/24 (火) 10:04:33
はじめまして。
よろしくお願いいたします。

現在HP-UX11.00、Bシェルでログの監視ツールを作っています。

早速質問させていただきたいのですが、
たとえば、以下のようなログがあったとします。
------------------------------------------
1:I have a error. You have a worning.
2:I have a worning. You have a error.
------------------------------------------

変数にワイルドカードを使用して
------------------------------------------
pattern="*error*worning*"
------------------------------------------
とパターン定義しておいて、ログファイルを一行ずつ読み込み
この場合ですと、一行目のみ出力させるということは可能でしょうか?

現在
------------------------------------------
message=`echo $line | sed -n /$pattern/p`
if [ "x$message" = "x" ] ; then
        exit 0
else
        echo $message
        exit 1
fi
#($lineはログファイルの読み取り行)
------------------------------------------
というようなことが、やりたいのですが、うまくいきません。


ご教授のほどお願いいたします。

No. 3940 # zsh 2004/08/24 (火) 15:00:13
>>3936 一人
こんな感じでどうですか?
------
awk 'BEGIN {
                FS=",";
                dummy="";
        } {
                if ( $1 != dummy ) {
                        if ( NR > 1 ) printf "\n";
                        printf "%s,%s",$1,$3;
                        dummy=$1
                } else {
                        printf ",%s",$3
                }
          } END {
                printf "\n";
          }' infile
------

>>3939 カトウ
pattern='.*error.*worning.*'
では駄目ですか?

Prev< No. 3939〜3940> Next  [最新発言に戻る] [過去ログ一覧]