亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 8689 | 回復(fù): 18
打印 上一主題 下一主題

求教: 大文本 中 按列去重 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2009-07-14 14:10 |只看該作者 |倒序?yàn)g覽
問題描述:
   一個比較大的文本A,按照列去重重復(fù)行

A 內(nèi)容為 :
  name1 pass1
  name2 pass2
  name1 pass3
  name4 pass4
  ......


通過一個shell 腳本,能得到
  name1 pass1
  name2 pass2
  name3 pass4




我這一般都是有 py 或 perl 的 map 來解決。
邏輯是 -- 偽代碼
for line readline( file )
     key,value=line.split('\t')[0],line
     if  not  map has_key key:
         push key , value
     else :
         continue

最后    foreach key,value map : print value

但遇到的問題是 當(dāng)文本夠大 ,這 map 會很占內(nèi)存.  而是要 bsddb 這種內(nèi)存數(shù)據(jù)庫,當(dāng) 內(nèi)存太多 就寫入 文本什么的。有感覺速度不敢恭維(這 io 大文件讀寫入庫太郁悶了)


這一直以來都沒什么好辦法解決,求大蝦 給個方

[ 本帖最后由 liukaiyi 于 2009-7-14 14:16 編輯 ]

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2009-07-14 14:17 |只看該作者

回復(fù) #1 liukaiyi 的帖子

自己頂 , 大家 幫個忙 啊~

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2009-07-14 14:18 |只看該作者
是說name重復(fù)的就只展示第一個?

  1. awk '!a[$1]++' URFILE
復(fù)制代碼

論壇徽章:
5
2015年辭舊歲徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亞洲杯之朝鮮
日期:2015-03-13 22:47:33IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-01-09 06:20:00IT運(yùn)維版塊每周發(fā)帖之星
日期:2016-03-07 16:27:44
4 [報(bào)告]
發(fā)表于 2009-07-14 14:19 |只看該作者

回復(fù) #1 liukaiyi 的帖子

  1. awk '!a[$1]++' urfile
復(fù)制代碼


文件有多大?要求要多快?

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2009-07-14 14:20 |只看該作者

回復(fù) #3 kwokcn 的帖子

恩 目前是這樣的
當(dāng)然可以 選擇 更好
比如 : 使用最后一個 什么的


awk '!a[$1]++' URFILE 能說明下嗎?

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2009-07-14 14:24 |只看該作者

回復(fù) #5 liukaiyi 的帖子

使用最后一個就必須得往內(nèi)存里丟更多東西了。
name第一次出現(xiàn)的時(shí)候a[$1]為空,!a[$1]就為真,執(zhí)行默認(rèn)的print,a[$1]自加為1,第二次直到第N次出現(xiàn),!a[$1]均為假,無操作。
CU常見用法,可默念幾遍加深記憶。

論壇徽章:
5
2015年辭舊歲徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亞洲杯之朝鮮
日期:2015-03-13 22:47:33IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-01-09 06:20:00IT運(yùn)維版塊每周發(fā)帖之星
日期:2016-03-07 16:27:44
7 [報(bào)告]
發(fā)表于 2009-07-14 14:24 |只看該作者
直接排序呢?沒有測試過。
  1. sort -uk 1,1 urfile
復(fù)制代碼


LZ可以測試一下,我沒有大文件。

論壇徽章:
0
8 [報(bào)告]
發(fā)表于 2009-07-14 14:25 |只看該作者
原帖由 blackold 于 2009-7-14 14:19 發(fā)表
awk '!a[$1]++' urfile

文件有多大?要求要多快?


上 10G 的樣子 , 全是日志  。
速度嘛   大概給的時(shí)間 是 小1 小時(shí)

論壇徽章:
5
2015年辭舊歲徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亞洲杯之朝鮮
日期:2015-03-13 22:47:33IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-01-09 06:20:00IT運(yùn)維版塊每周發(fā)帖之星
日期:2016-03-07 16:27:44
9 [報(bào)告]
發(fā)表于 2009-07-14 14:25 |只看該作者

回復(fù) #8 liukaiyi 的帖子

應(yīng)該沒有問題。

論壇徽章:
0
10 [報(bào)告]
發(fā)表于 2009-07-14 14:27 |只看該作者

回復(fù) #8 liukaiyi 的帖子

謝謝大家 這方法我會 都嘗試下  ,運(yùn)行后 時(shí)間對比
可能 過幾天 給大家 了參考了

[ 本帖最后由 liukaiyi 于 2009-7-14 14:30 編輯 ]
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP