兩個(gè)文本文件的內(nèi)部連接希望對(duì)兩個(gè)不同的文本文件執(zhí)行內(nèi)部連接?;旧希艺趯ふ遗cGNU連接程序相當(dāng)?shù)膬?nèi)部連接。這樣的東西存在嗎?如果沒(méi)有,則awk或sed解決方案將非常有用,但我的第一選擇是Linux命令。下面是我想要做的事情的一個(gè)例子檔案1:0|Alien Registration Card LUA|Checklist Update1|Alien Registration Card LUA|Document App Plan2|Alien Registration Card LUA|SA Application Nbr3|Alien Registration Card LUA|tmp_preapp-DOB0|App - CSCE Certificate LUA|Admit Type1|App - CSCE Certificate LUA|Alias 12|App - CSCE Certificate LUA|Alias 23|App - CSCE Certificate LUA|Alias 34|App - CSCE Certificate LUA|Alias 4檔案2:Alien Registration Card LUA結(jié)果:0|Alien Registration Card LUA|Checklist Update1|Alien Registration Card LUA|Document App Plan2|Alien Registration Card LUA|SA Application Nbr3|Alien Registration Card LUA|tmp_preapp-DOB
3 回答

蕭十郎
TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超13個(gè)贊
LUA
join
:
join -t'|' -12 <(sort -t'|' -k2 file1) file2

慕勒3428872
TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超6個(gè)贊
$ awk -F'|' 'NR==FNR{check[$0];next} $2 in check' file2 file1
這是怎么回事?
-F'|'
-設(shè)置字段分隔符 'NR==FNR{check[$0];next}
-如果總記錄號(hào)與文件記錄號(hào)匹配(即我們正在讀取所提供的第一個(gè)文件),則填充一個(gè)數(shù)組并繼續(xù)。 $2 in check
-如果在我們創(chuàng)建的數(shù)組中提到了第二個(gè)字段,則打印行(如果不提供操作,這是默認(rèn)操作)。 file2 file1
-檔案訂單是重要的,因?yàn)?/trans> NR==FNR
構(gòu)造。

白板的微信
TA貢獻(xiàn)1883條經(jīng)驗(yàn) 獲得超3個(gè)贊
cat file2 | while read line; do grep $line file1 # or whatever you want to do with the $line variabledone
添加回答
舉報(bào)
0/150
提交
取消