• join命令


    join命令

    join命令用于将两个文件中,指定栏位内容相同的行连接起来。其首先找出两个文件中指定栏位内容相同的行,并加以合并,再输出到标准输出设备。

    语法

    join [OPTION]... FILE1 FILE2
    

    参数

    • -a FILENUM: 从FILENUM打印不成对的行,其中FILENUM12,对应于FILE1FILE2
    • -e EMPTY: 将缺少的输入字段替换为空。
    • -i, --ignore-case: 比较字段时忽略大小写的差异。
    • -j FIELD: 相当于-1 FIELD -2 FIELD
    • -o FORMAT: 构造输出线时遵守FORMAT
    • -t CHAR: 使用CHAR作为输入和输出字段分隔符。
    • -v FILENUM: 类似于-a FILENUM,但不连接输出行。
    • -1 FIELD: 加入文件1的这个FIELD
    • -2 FIELD: 加入文件2的这个FIELD
    • --check-order: 检查输入是否正确排序,即使所有输入行都可以配对。
    • --nocheck-order: 不要检查输入是否正确排序。
    • --header: 将每个文件的第一行视为字段标题,无需尝试将它们配对即可打印它们。
    • --help: 显示帮助信息。
    • --version: 显示版本信息。

    示例

    file1.txtfile2.txt文件内容如下:

    # file1.txt
    1 AAYUSH
    2 APAAR
    3 HEMANT
    4 KARTIK
    5 TIM
    
    # file2.txt
    1 101
    2 102
    3 103
    4 104
    

    使用join命令合并文件,为了合并两个文件,文件必须具有一些公共字段,此时两个文件中的公共字段均带有编号1、2...

    join file1.txt file2.txt
    # 1 AAYUSH 101
    # 2 APAAR 102
    # 3 HEMANT 103
    # 4 KARTIK 104
    

    使用-a选项打印FILE1中已成对的行并链接以及不成对的行。

    join file1.txt file2.txt -a 1
    # 1 AAYUSH 101
    # 2 APAAR 102
    # 3 HEMANT 103
    # 4 KARTIK 104
    # 5 TIM
    
    

    使用-v选项打印FILE1中不成对的行。

    join file1.txt file2.txt -v 1
    # 5 TIM
    

    join会在第一个公共字段上组合文件行,该字段是默认值。但是这两个文件中的公共值不一定总是第一个列,所以join可以使用-1, -2指定公共值位置。-1-2表示第一个和第二个文件,这些选项需要一个数字参数,该参数引用相应文件的连接字段。

    `file1.txt`与`file2.txt`文件内容如下:
    # file1.txt
    AAYUSH 1 
    APAAR 2
    HEMANT 3
    KARTIK 4
    TIM 5
    
    # file2.txt
    101 1
    102 2
    103 3
    104 4
    
    join -1 2 -2 2 file1.txt file2.txt
    # 1 AAYUSH  101
    # 2 APAAR 102
    # 3 HEMANT 103
    # 4 KARTIK 104
    

    对于上面的示例,我们直接使用-j参数也可以实现。

    join -j 2 file1.txt file2.txt
    # 1 AAYUSH  101
    # 2 APAAR 102
    # 3 HEMANT 103
    # 4 KARTIK 104
    

    每日一题

    https://github.com/WindrunnerMax/EveryDay
    

    参考

    https://www.computerhope.com/unix/ujoin.htm
    https://www.runoob.com/linux/linux-comm-join.html
    https://www.geeksforgeeks.org/join-command-linux/
    
  • 相关阅读:
    jQuery EasyUI实现全部关闭tabs
    设计与实现模块管理系统基本功能定义自己(28--所述多个模块之间的关联[4])
    C++11的一些功能
    表和视图之间的区别
    三个思路来实现自己定义404页面
    WebGL 在 OpenGL ES 指令 iOS 在 C 分歧版指令分析
    hdoj 2183 奇数阶魔方(II) 【模拟】+【法】
    新浪、万网前系统架构师高俊峰:统一监控报警平台架构设计思路
    this compilation unit is not on the build path of a java project
    Ecshop wap
  • 原文地址:https://www.cnblogs.com/WindrunnerMax/p/14188167.html
Copyright © 2020-2023  润新知