天天看點

使用join連接配接字段的小腳本示例

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