ファイル内の重複行削除(後優先)
Posted feedbacks - SQL
使い方: sh uniq.sh input.txt 「シビア」な場合に想定される「DBMSの再発名」の準備です。#3のメモリは主記憶と解釈しました。 キャッシュで済んでしまうくらい小さいデータセットの場合にはこの解釈でも問題になるわけですが、 そのことを明示しているわけではないということで uniq.shの内容は下に
1 2 3 4 5 6 7 8 9 10 11 12 13 | mysql -uroot -p -N test << EOF
DROP TABLE IF EXISTS tmp;
CREATE TABLE tmp (
id INT PRIMARY KEY AUTO_INCREMENT,
line LONGTEXT NOT NULL
) CHARACTER SET UTF8;
LOAD DATA LOCAL INFILE "$1" INTO TABLE tmp FIELDS TERMINATED BY '\n' (line);
SELECT line FROM tmp GROUP BY line ORDER BY MAX(id);
EOF
|


raynstard
#3422()
Rating1/1=1.00
入力されたテキストデータから重複する行をとりのぞいて、その結果を標準出力へ出力するプログラムを作成してください。
重複行の排除については、以下の仕様を満たしてください。
#4.はおまけですがある/なしで作りが変わってくると思われるので追加しました。
この問題はraynstardさんにご投稿いただきました。ご協力ありがとうございます。 ところで、素朴な実装のしかたをするとメモリ容量の数倍のサイズのすべての行が異なっているファイルを読ませたときに大変なことが起こりそうな気がしますが、そういうシビアなお題設定ではないので素朴に解いてしまって構いません。シビアなのは続編にしたいと思います。
[ reply ]