使用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