歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux技術

Linux下刪除大數據文件中部分字段重復行的方法

最近寫的一個數據采集程序生成了一個含有1千多萬行數據的文件,數據由4個字段組成,按照要求需要刪除第二個字段重復的行,找來找去linux下也沒找到合適的工具,sed/gawk等流處理工具只能針對一行一行處理,並無法找到字段重復的行。看來只好自己python一個程序了,突然想起來利用mysql,於是進行乾坤大挪移:

1. 利用mysqlimport --local dbname data.txt導入數據到表中,表名要與文件名一致
2. 執行下列sql語句(要求唯一的字段為uniqfield)


復制代碼代碼如下:
use dbname;
alter table tablename add rowid int auto_increment not null;
create table t select min(rowid) as rowid from tablename group by uniqfield;
create table t2 select tablename .* from tablename,t where tablename.rowid= t.rowid;
drop table tablename;
rename table t2 to tablename;
Copyright © Linux教程網 All Rights Reserved