Linux join命令

Linux join命令用于将两个文件中,指定栏位内容相同的行连接起来。

找出两个文件中,指定栏位内容相同的行,并加以合并,再输出到标准输出设备。

语法:

join [-i][-a<1或2>][-e<字符串>][-o<格式>][-t<字符>][-v<1或2>][-1<栏位>][-2<栏位>][文件1][文件2]

参数:

  • -a<1或2> 除了显示原来的输出内容之外,还显示指令文件中没有相同栏位的行。
  • -e<字符串> 若[文件1]与[文件2]中找不到指定的栏位,则在输出中填入选项中的字符串。
  • -i或–igore-case 比较栏位内容时,忽略大小写的差异。
  • -o<格式> 按照指定的格式来显示结果。
  • -t<字符> 使用栏位的分隔字符。
  • -v<1或2> 跟-a相同,但是只显示文件中没有相同栏位的行。
  • -1<栏位> 连接[文件1]指定的栏位。
  • -2<栏位> 连接[文件2]指定的栏位。
  • –help 显示帮助。
  • –version 显示版本信息

这边就拿常用的-a和-v举例子。

首先两个文本:

cat a.txt 
1 a
2 a
cat b.txt 
1 b
3 b

join什么参数都不加的话,显示第一列相同的行,然后将两个文本中改行的内容连接在一起。

join a.txt b.txt 
1 a b

join后加-a参数的时候,显示第一列相同的行,然后将两个文本中改行的内容连接在一起。并且a后跟的值如果是1的话,就显示第一个文本中和第二个文本对不上的行。同理,如果是2的话,就显示第二个文本中和第一个文本对不上的行。

join  -a1 a.txt b.txt 
1 a b
2 a
join  -a2 a.txt b.txt 
1 a b
3 b

join后加-v参数的时候,不显示第一列相同的行,只显示不同的行。如果v之后跟的是1的话,就显示第一个文本中和第二个文本对不上的行。同理,如果是2的话,就显示第二个文本中和第一个文本对不上的行。

join  -a1 a.txt b.txt 
2 a
join  -a2 a.txt b.txt 
3 b
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值