在檔案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 ...