請教乙個AWK處理兩個檔案公共字段結合的題目

2022-07-08 04:18:09 字數 946 閱讀 5995

在檔案score.txt中存有如下資料:(姓名 分數)

lisi 88

bokeyuan 97

zhangsan 77

wangwu 89

hongliu 92

zhanghua 97

在檔案student.txt中存有:

zhangsan

hongliu

使用awk, cut, grep, find等任意shell指令碼,輸出student.txt所有學生的分數,即輸出:

zhangsan 77

hongliu 92

如果只在score.txt中處理,可以很容易得寫出

awk ' ' score.txt

但是結合另外乙個檔案,該怎麼處理呢?

求人不如求自己,到處找了找處理方法,可以使用awk來處理多個檔案,答案如下:

awk  '   ' grade.txt name.txt

簡化版得寫法為:

awk 'argind==1  argind>1 && ($1 in grade) ' grade.txt name.txt

分析:argind==1處理第乙個引數,即grade.txt檔案

以grade.txt檔案中的第一列為索引,將grade.txt中得內容存入grade陣列中

if (argind>1 && ($1 in grade)) print grade[$1] 如果處理的是第二個及以後的檔案,即name.txt,檢查第一列(姓名)是否在grade陣列中,如果在,就列印以姓名為索引的grade資訊。

繼續好好學習shell程式設計吧。。。後台程式設計面試常問。。。

兩個單鏈表第乙個公共結點

基本概念 兩個鍊錶是單鏈表,如果兩個鍊錶有公共節點,那麼這兩個鍊錶從某一節點開始,它們都指向同乙個節點,之後它們所有的節點都是重合的,不可能再出現分叉。所以拓撲形狀看起來是y型。演算法思想 首先遍歷兩個鍊錶得到它們的長度,就能知道哪個鍊錶比較長,以及長的鍊錶比短的鍊錶多幾個節點。在第二次遍歷的時候,...

兩個鍊錶第乙個公共節點

先讓長的鍊錶的指標先走長的之差的步數,兩個再一起走,如果相遇就是第乙個公共節點 如果沒交點,就都走到空 struct listnode class solution while pl2 null 復位指標到頭節點 pl1 phead1 pl2 phead2 int dif len 0 if len1...

兩個棧模擬乙個佇列 兩個佇列模擬乙個棧

解題思路 插入操作在stack1中進行,刪除操作在stack2中進行,如果stack2為空,則將stack1中的所有元素轉移到stack2中。include include includeusing namespace std template class cqueue 建構函式 template ...