使用join连接字段

join 命令可以将多个文件结合在一起,每个文件里的每条记录,都共享一个键值(key),键值指的是记录中的主子段,通常会是用户名称,个人姓氏、员工编号之类的数据。

 

join

语法

  join [ options ...] file1 file2

用途

  以共同一个键值,将已存储文件内的记录加以结合。

主要选项

  -1  field1

  -2  field2

   标明要结合的字段。 -1 field1指的是从file1取出field1,而-2 field2 指的则为从file2去除field2。字段编号自1开始,而非0.

  -o file.field

   输出file 文件中的field字段。一般的字段则不打印。

  -t separator

   使用separator 作为输入字段分隔字符,而非使用空白。此字符也为输出的字段分隔字符。

 

 

范例1:

  cat sales        显示sales文件

  #业务员数据        注释说明

  #业务员 量       

   joe     100

   jane     200

   herman  150

    chris     300

 

   cat quotas        显示quotas文件

  #配额

  #业务员 配额

  joe    50

  jane    75

  herman  80

  chris   95 

为了让join运作到正常输出,输入文件必须先完成排序。如程序:merge-sales.sh

例:merge-sales.sh

#!/bin/sh

#merage-sales.sh

#

#结合配额与业务员数据

#删除注释并排序数据文件

sed '/^#/d' quotas | sort > quotas.sorted

sed '/^#/d' sales  | sort > sales.sorted

# 以一个键值作结合,将结果产生至标准输出

join quotas.sorted sales.sorted

#删除缓存文件

rm quotas.sorted sales.sorted

 

 

posted @ 2012-03-30 16:40  Timecode-Shi  阅读(352)  评论(0编辑  收藏  举报