68user's page 掲示板

Prev< No. 3935〜3936> Next  [最新発言に戻る] [過去ログ一覧]
No. 3935 # TSURU 2004/08/20 (金) 20:55:22
こんばんは。TSURUです。
久しぶりです。
また、皆さんのお力を貸して欲しいと思います。

sendmail を久しぶりにコンパイルしようとしたのですが、
以下のようなメッセージが大量に出力されてしまい、コンパイル
できません。

unknown flag -lang-c
unknown flag -Asystem(unix)
unknown flag -Asystem(svr4)
unknown flag -Acpu(sparc)
unknown flag -Amachine(sparc)

環境は、以下のとおりです。

OS : Soraris 2.5.1
sendmail : sendmail-8.12.11

以前は問題なくコンパイルできていたのですが、久しぶりに実行したら、いきなり
コンパイルできなくなってしまいました。環境は、以前と特に変えていません。
コンパイラは gcc ですが、かなり古いです。

% l /usr/local/bin/gcc
-rwxr-xr-x 1 root other 118928 9月 1日 1996年 /usr/local/bin/gcc*

コンパイラが古いとコンパイルできなくなるということはあるのでしょうか?
ちなみに、sendmail だけでなく、UW-IMAP など他の製品をコンパイルしようとした
時にも、同様な現象となります。
gcc が正しくインストールされていないのが原因なのでしょうか?(だとしても、
以前は正常にコンパイルできていました。)

どなたか、解決方法を教えていただきたいと思います。
よろしくお願いします。

No. 3936 # 一人 2004/08/23 (月) 21:39:37
以下のカンマで区切られたデータをフィールド1をキーにして、フィールド3を
1行に編集しようとしたのですが、処理が終了してくれません。
無限ループの状態になってしまいます。

上手くファイルの終了を判断していません。
ファイルの終わり(EOF)を判断するにはどうしたらできますか。


--データ--------------
A001,商品番号,0001
A001,商品番号,0002
A001,商品番号,0003
A002,商品番号,0001
    :
    :
Annn,商品番号,0001
Annn,商品番号.0002

--結果--------------------
A001,0001,0002,0003
A002,0001
    :
    :
Annn,0001,0002

----------------------------------
#!/bin/sh
#

SORT_FILE="/tmp/sort_csv.log"
OUT_FILE="/tmp/kekka.log"

rm ${OUT_FILE}* > /dev/null 2>&1

echo "*** start ***"

awk -v OUT=${OUT_FILE} -F"," '
BEGIN {
                count = 0+0 ;
                output=sprintf("%s",OUT) ;
        }
function edit_proc() {
        cnt = 0+1 ;
        dumy = $1 ;
        printf("%s",$1) >> output ;

        while( NF>0 ) {
                if (dumy != $1) {
                        printf("\n") >> output ;
                        dumy = $1 ;
                        printf("%s",$1) >> output ;
                        cnt++ ;
                }
                printf(",%s",$3) >> output ;
                getline ;
        }
        printf("\n") >> output ;
        return cnt ;
}
{
        count=edit_proc() ;
}
END {
        close(output) ;
        printf("syori count [ %d ] ken\n",count) ;
}' ${SORT_FILE}

echo "*** end ***"

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