系統(tǒng)之家 - 系統(tǒng)光盤下載網(wǎng)站!

當(dāng)前位置:系統(tǒng)之家 > 系統(tǒng)教程 > 刪除Linux中文件的重復(fù)數(shù)據(jù)行

如何快速刪除Linux文件中的重復(fù)數(shù)據(jù)行

時(shí)間:2014-12-26 15:39:10 作者:qipeng 來源:系統(tǒng)之家 1. 掃描二維碼隨時(shí)看資訊 2. 請使用手機(jī)瀏覽器訪問: https://m.xitongzhijia.net/xtjc/20141226/33538.html 手機(jī)查看 評論

  Linux系統(tǒng)操作中,如果文件中的數(shù)據(jù)過多,想要刪除重復(fù)數(shù)據(jù)行是非常麻煩的,查找不方便,那么有什么方法能夠快速刪除文件重復(fù)數(shù)據(jù)行呢?下面小編就給大家介紹下如何刪除文件重復(fù)數(shù)據(jù)行,一起來看看吧。

 如何快速刪除Linux文件中的重復(fù)數(shù)據(jù)行

  一、去掉相鄰重復(fù)的數(shù)據(jù)行

  代碼如下:

  $cat data1.txt | uniq

  輸出:

  beijing

  wuhan

  beijing

  wuhan

  二、去掉所有重復(fù)的數(shù)據(jù)行

  代碼如下:

  $cat data1.txt | sort | uniq

  注:

  只有uniq命令的話,只是把相鄰的重復(fù)的數(shù)據(jù)行去掉。

  如果先 sort 的話,就會把所有重復(fù)的數(shù)據(jù)行變成相鄰的數(shù)據(jù)行,再 uniq 的話,就去掉所有重復(fù)的數(shù)據(jù)行了。

  輸出:

  beijing

  wuhan

  附:data1.txt

  代碼如下:

 。踨oot@syy ~]# cat data1.txt

  beijing

  beijing

  wuhan

  wuhan

  wuhan

  beijing

  beijing

  beijing

  wuhan

  wuhan

  注:在過濾日志中的IP地址很有用。

  Linux下刪除大數(shù)據(jù)文件中部分字段重復(fù)的行

  最近寫的一個(gè)數(shù)據(jù)采集程序生成了一個(gè)含有1千多萬行數(shù)據(jù)的文件,數(shù)據(jù)由4個(gè)字段組成,按照要求需要刪除第二個(gè)字段重復(fù)的行,找來找去linux下也沒找到合適的工具,sed/gawk等流處理工具只能針對一行一行處理,并無法找到字段重復(fù)的行?磥碇缓米约簆ython一個(gè)程序了,突然想起來利用mysql,于是進(jìn)行乾坤大挪移:

  1. 利用mysqlimport --local dbname data.txt導(dǎo)入數(shù)據(jù)到表中,表名要與文件名一致

  2. 執(zhí)行下列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;《/p》 《p》drop table tablename;

  rename table t2 to tablename;

  上面就是Linux刪除文件重復(fù)數(shù)據(jù)行的方法介紹了,本文介紹了多種情況下刪除文件重復(fù)數(shù)據(jù)行的方法,希望對你有所幫助。

發(fā)表評論

0

沒有更多評論了

評論就這些咯,讓大家也知道你的獨(dú)特見解

立即評論

以上留言僅代表用戶個(gè)人觀點(diǎn),不代表系統(tǒng)之家立場

其他版本軟件

熱門教程

人氣教程排行

Linux系統(tǒng)推薦

官方交流群 軟件收錄