先来看命令paste。
paste将几个文件的相应行用制表符连接起来,并输出到标准输出。 
paste [选项] file1 file2 
-d 指定不同于空格或tab键的域分隔符。例如用#分隔域,使用-d# 
-s 将每个文件合并成行而不是按行粘 
paste -d# name.txt home.txt
再来看join命令。
join将两个文件中,指定栏位内容相同的行连接起来。 
join [-i][-a<1或2>][-e<字符串>][-o<格式>][-t<字符>][-v<1或2>][-1<栏位>][-2<栏位>][--help][--version][文件1][文件2] 
  -a<1或2>   除了显示原来的输出内容之外,还显示指令文件中没有相同栏位的行。 
  -e<字符串>   若[文件1]与[文件2]中找不到指定的栏位,则在输出中填入选项中的字符串。 
  -i         比较栏位内容时,忽略大小写的差异。 
  -o<格式>   按照指定的格式来显示结果。 
  -t<字符>   使用栏位的分隔字符。 
  -v<1或2>   跟-a相同,但是只显示文件中没有相同栏位的行。 
  -1<栏位>   连接[文件1]指定的栏位。 
  -2<栏位>   连接[文件2]指定的栏位。
下面举一些例子,以帮助大家的理解。 
 
[root@jbxue ~]# cat names 
Tony 
Emanuel 
Lucy 
Ralph 
Fred
[root@jbxue ~]# cat numbers 
(307) 555-5356 
(212) 555-3456 
(212) 555-9959 
(212) 555-7741 
(212) 555-0040
2,将两个文件合并,中间用tab键分隔开。
 
[root@jbxue ~]# paste names numbers
Tony      (307) 555-5356 
Emanuel   (212) 555-3456 
Lucy      (212) 555-9959 
Ralph    (212) 555-7741 
Fred     (212) 555-0040
[root@jbxue ~]# cat addresses 
55-23 Vine Street, Miami 
39 University Place, New York 
17 E. 25th Street, New York 
38 Chauncey St., Bensonhurst 
17 E. 25th Street, New York
3,将 三个文件合并。
 
[root@jbxue ~]# paste names addresses numbers
Tony    55-23 Vine Street, Miami        (307) 555-5356 
Emanuel         39 University Place, New York   (212) 555-3456 
Lucy    17 E. 25th Street, New York     (212) 555-9959 
Ralph   38 Chauncey St., Bensonhurst    (212) 555-7741 
Fred    17 E. 25th Street, New York     (212) 555-0040
[root@jbxue ~]# cat employee.txt 
100 Jason Smith 
200 John Doe 
300 Sanjay Gupta 
400 Ashok Sharma
[root@jbxue ~]# cat bonus.txt 
100 $5,000 
200 $500 
300 $3,000 
400 $1,250
[root@jbxue ~]# join employee.txt bonus.txt 
100 Jason Smith  $5,000 
200 John Doe  $500 
300 Sanjay Gupta  $3,000 
400 Ashok Sharma $1,250