join指令可以将多個檔案連接配接在一起,每個檔案裡的每條記錄,都共享一個鍵值,鍵值指的是記錄中的主字段,通常會是使用者名稱,員工編号之類的資料,舉例來說,有兩個檔案,一個列出所有業務員銷售業績,一個列出每個業務員應實作的業績:
> cat sales
#業務員資料
#業務員 量
joe 100
jane 200
herman 150
chris 300
>cat quotas
#配額
#業務員 配額
joe 50
jane 75
herman 80
chris 95
每條記錄都有兩個字段:業務員的名字與相對應得量,為了讓join運作得到正确結果,輸入檔案必須先完成排序,如下面的腳本lianjie.sh即為使用join結合兩個檔案。
>cat lianjie.sh
#!/bin/bash
sed '/^#/d' quotas | sort > quotas.sorted
sed '/^#/d' sales | sort > sales.sorted
join quotas.sorted sales.sorted
rm quotas.sorted sales.sorted
首先使用sed删除注釋,然後再排序個别檔案。排序後的緩存檔案成為join指令的輸入資料,最後删除緩存檔案。
執行後的結果如下:
>./lianjie.sh
chris 95 300
herman 80 150
jane 75 200
joe 50 100
将兩個檔案的内容連接配接在一起輸出。
本文轉自 zhangzj1030 51CTO部落格,原文連結:http://blog.51cto.com/tech110/247144