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

Chinaunix

標(biāo)題: 請教一個(gè)shell及awk相關(guān)的問題 [打印本頁]

作者: wangliang222002    時(shí)間: 2010-03-29 18:05
標(biāo)題: 請教一個(gè)shell及awk相關(guān)的問題
本帖最后由 wangliang222002 于 2010-03-29 18:09 編輯

文件a格式如下,有二列數(shù)據(jù)用逗號分隔約1000w行
a,1
b,342
c,4342
d,434
e,2
f,2
...

文件b格式如下,只有文件b中的第一列部分?jǐn)?shù)據(jù),約10w行
a
c
d
...

現(xiàn)在想查出a文件中含b文件的部分。
我用shell腳本循環(huán)b文件,然后執(zhí)行10w次grep對a文件的查找,輸出到一個(gè)新文件就可以了
輸出后的格式為
a,1
c,4342
d,434
...
但這種辦法效率太低,有沒有什么快的辦法?
作者: wangliang222002    時(shí)間: 2010-03-29 18:09
輸出后的格式為
a,1
c,4342
d,434
...
作者: wtuter    時(shí)間: 2010-03-29 18:11
本帖最后由 wtuter 于 2010-03-29 18:12 編輯

回復(fù) 1# wangliang222002


    沒表達(dá)清楚

不過試試grep -Ff b a
作者: wangliang222002    時(shí)間: 2010-03-29 18:39
回復(fù) 3# wtuter


   


    謝謝,就是你這個(gè)意思。

不過還有個(gè)問題
文件a數(shù)據(jù)若為:
abc,123
a,123
z,34
...

文件b數(shù)據(jù)為
a
...
那么abc,123數(shù)據(jù)也會返回,我想b文件的數(shù)據(jù)對a文件的第一列完全匹配,只返回a,123該怎么弄呢?
作者: wtuter    時(shí)間: 2010-03-29 18:46
回復(fù) 4# wangliang222002


    grep -wFf b a
作者: ly5066113    時(shí)間: 2010-03-29 18:49
回復(fù) 5# wtuter


應(yīng)該是這個(gè)意思:
  1. awk -F, 'NR==FNR{a[$1]}NR>FNR&&($1 in a)' b a
復(fù)制代碼

作者: ghp268    時(shí)間: 2010-03-29 19:24
應(yīng)該是5樓的意思吧
作者: wtuter    時(shí)間: 2010-03-29 19:26
回復(fù) 7# ghp268


    tim的意思也對,不過tim沒寫全


awk 'NR==FNR{a[$1]}NR>FNR{if($1 in a)print $0}'  b a
作者: cearo    時(shí)間: 2010-03-29 21:50
回復(fù) 8# wtuter


    FNR{a[$1]}
這些是什么意思能解釋下你這句嗎?劉德華
作者: Shell_HAT    時(shí)間: 2010-03-29 22:30
你把劉德華的命令肢解了,應(yīng)該這樣看:
當(dāng)NR==FNR的時(shí)候執(zhí)行{a[$1]}
作者: ghp268    時(shí)間: 2010-03-29 23:09
回復(fù)  wtuter


    FNR{a[$1]}
這些是什么意思能解釋下你這句嗎?劉德華
cearo 發(fā)表于 2010-03-29 21:50



    相當(dāng)于建立了一個(gè)關(guān)聯(lián)數(shù)組
作者: ly5066113    時(shí)間: 2010-03-30 09:57
回復(fù) 8# wtuter


寫全了,awk默認(rèn)的action就是{print $0}
NR>FNR&&($1 in a)
等價(jià)于
NR>FNR&&($1 in a){print $0}

grep的方案要依賴樓主的數(shù)據(jù),如果樓主a文件的第二列有與b文件相匹配的也會被列出來。
awk會更精確一些。
作者: wtuter    時(shí)間: 2010-03-30 13:58
回復(fù) 12# ly5066113


   對,tim說的對




歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2