亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

兩個文本文件的內部連接

兩個文本文件的內部連接

元芳怎么了 2019-07-08 13:02:30
兩個文本文件的內部連接希望對兩個不同的文本文件執行內部連接?;旧希艺趯ふ遗cGNU連接程序相當的內部連接。這樣的東西存在嗎?如果沒有,則awk或sed解決方案將非常有用,但我的第一選擇是Linux命令。下面是我想要做的事情的一個例子檔案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結果: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貢獻1815條經驗 獲得超13個贊

文件2不應該包含LUA最后?

如果是,您仍然可以使用join:

join -t'|' -12 <(sort -t'|' -k2 file1) file2


查看完整回答
反對 回復 2019-07-08
?
慕勒3428872

TA貢獻1848條經驗 獲得超6個贊

下面是一個awk選項,因此您可以避免bash依賴項(可移植性):

$ awk -F'|' 'NR==FNR{check[$0];next} $2 in check' file2 file1

這是怎么回事?

  • -F'|'

    -設置字段分隔符
  • 'NR==FNR{check[$0];next}

    -如果總記錄號與文件記錄號匹配(即我們正在讀取所提供的第一個文件),則填充一個數組并繼續。
  • $2 in check

    -如果在我們創建的數組中提到了第二個字段,則打印行(如果不提供操作,這是默認操作)。
  • file2 file1

    -檔案訂單是重要的,因為

    NR==FNR

    構造。


查看完整回答
反對 回復 2019-07-08
?
白板的微信

TA貢獻1883條經驗 獲得超3個贊

您可以修改此腳本:

cat file2 | while read line; do
    grep $line file1 # or whatever you want to do with the $line variabledone

而循環逐行讀取文件2,并將該行交給grep命令,該命令在file 1中對該行進行處理。還有一些額外的輸出,可能是用grep選項刪除的。


查看完整回答
反對 回復 2019-07-08
  • 3 回答
  • 0 關注
  • 572 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號