shell join 参数详细说明
join类似db里面的join方法,同样有left join right join inner join等
指定参数-a 可以指定join的方式。
-a1表示显示第一个文件中不匹配的行,即为left join
-a2表示显示第二个文件中不匹配的行,即为right join
-o 1.1 2.1 -o是输出参数,1.1表示输出第一个文件的第一列;2.1表示输出第二个文件的第一列
-t "|" 是分隔符参数, 表示指定|作为域分隔符
-j 1.1 2.1 -j是表示连接的字段参数, 这里表示第一个文件的第一列和第二个文件的第一列关联
如下举几个例子:
cat employee.txt
100 Jason Smith
200 John Doe
300 Sanjay Gupta
400 Ashok Sharma
cat bonus.txt
200 $500
300 $3,000
400 $1,250
如下输出第一行没有最后收入一列
join -a1 employee.txt bonus.txt
100 Jason Smith
200 John Doe $500
300 Sanjay Gupta $3,000
400 Ashok Sharma $1,250
如下输出没有编号为100的行
join -a2 employee.txt bonus.txt
200 John Doe $500
300 Sanjay Gupta $3,000
400 Ashok Sharma $1,250
只输出名字与收入
join -o 1.2 2.2 employee.txt bonus.txt
John $500
Sanjay $3,000
Ashok $1,250