join 
 
语  法:join [-i][-a<12>][-e<字符串>][-o<格式>][-t<字符>][-v<12>][-1<栏位>][-2<栏位>][--help][--version][文件1][文件2]
 
补充说明:找出两个文件中,指定栏位内容相同的行,并加以合并,再输出到标准输出设备。
 
参  数:
  -a<12>   除了显示原来的输出内容之外,还显示指令文件中没有相同栏位的行。
  -e<字符串>   [文件1][文件2]中找不到指定的栏位,则在输出中填入选项中的字符串。
  -i--igore-case   比较栏位内容时,忽略大小写的差异。
  -o<格式>   按照指定的格式来显示结果。
  -t<字符>   使用栏位的分隔字符。
  -v<12>   -a相同,但是只显示文件中没有相同栏位的行。
  -1<栏位>   连接[文件1]指定的栏位。
  -2<栏位>   连接[文件2]指定的栏位。
  --help   显示帮助。
  --version   显示版本信息。
首先,我们查看 a, b d两个文件的内容.

合并文本命令:join,paste_职场_02

合并文本命令:join,paste_join_03


我们默认合并两个文件,它们将以行开头相同的内容为对照,如果一样,则抵消,把不同的合并为同一行。
合并文本命令:join,paste_职场_04

如果两文件的行头不一样,则无法合并
合并文本命令:join,paste_join_05

以第一个文件为主要内容合并,显示第一个文件的所有内容,不显示第二个文件不匹配规则的内容,
(匹配规则为:行头一样,则允许合并,每行后续不同内容合并一起,相同的抵消)
合并文本命令:join,paste_休闲_06

以第二个文件为主要内容合并,显示第二个文件的所有内容,不显示第一个文件不匹配规则的内容,
(匹配规则为:行头一样,则允许合并,每行后续不同内容合并一起,相同的抵消)
合并文本命令:join,paste_休闲_07

合并两个文件的所有内容,但不符合规则的,则各自为一行。
合并文本命令:join,paste_休闲_08

使用分隔符: 以分隔符为参照内容
合并文本命令:join,paste_职场_09

使用自定义合并队列选项,1.1 代表第一个文件的第一列,2.2 代表第二个文件的第二列
合并文本命令:join,paste_join_10

合并文本命令:join,paste_join_11

使用分隔符,将会更加精确的定位合并内容。
合并文本命令:join,paste_join_12

 
 
paste
 
paste 是linux 命令
  用途
  从一个或多个文件中连接行。
  语法
  paste [ -s ] [ -d List ] File1 ...
  描述
  paste 命令从在命令行上指定的文件中读取输入。如果出现 - (减号)作为文件名,此命令从标准输入中读取。此命令连接给定的文件中的行并把结果行写到标准输出中。
  缺省情况下, paste 命令把每个文件当作栏,并用制表符水平连接它们(并行合并)。可以把 paste 命令看作为 cat 命令(垂直连接,也就是一个接一个)的相对命令。
  使用 -s 标志, paste 命令合并同一输入文件的后继行(串行合并)。缺省情况下,这些行用制表符连接。

  下列特殊字符也可用在 List 参数中:
  \n  换行符
  \t   制表符
  \\ 反斜杠
  \0 空字符串(不是空字符) 
     c 扩展字符  必须用引号将对 shell 有特殊意义的字符引起来。


一个文件为一行

使用分隔符合并

自定义输出栏,使用重定向输出4个栏位数据