68user's page 掲示板

Prev< No. 1345> Next  [最新発言に戻る] [過去ログ一覧]
No. 1345 # rosegarden 2000/11/10 (金) 18:26:57
> # 見本求む。

見本かどうか分かりませんが、私は次のように書きました。

#!/usr/bin/awk -f

{
        array[$2] = sprintf("%s %s", array[$2], $1);
}
END {
        for( key in array ){
                split(array[key], tmp);
                if( 2 in tmp )
                        printf("%s %s %s %s\n", key, tmp[1], key, tmp[2]);
                else
                        printf("%s %s\n", key, tmp[1]);
        }
}

起動は
% awk -f script file1 file2
としてください。連想配列に記録して、最後に出力という感じです。
ただし、次のような $2 が同じだが $1 が違う値を含む形式のデータは
仮定していません。

10 abcde
11 abcde

どちらかを捨てるようになっているかと思います。実際にはデータの形式の
チェックが要るかと思います。あと出力の順が不定になります。出力の
順番に依存する処理には向きません。動作チェックはしていません。
多分、本家の awk じゃ無理かな。動作チェックは gawk でやっています。

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