zoukankan      html  css  js  c++  java
  • Linux下Join命令

     

           最近新上线算法,打算分析起点书籍点击率的波动,原来已经有流程每天每本书籍的点击率数据(文件)。之前这种情况都是写代码对不同天的进行合并,后来发现linux下直接就有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或–igore-case   比较栏位内容时,忽略大小写的差异。
    -o<格式>   按照指定的格式来显示结果。
    -t<字符>   使用栏位的分隔字符。
    -v<1或2>   跟-a相同,但是只显示文件中没有相同栏位的行。
    -1<栏位>   连接[文件1]指定的栏位。
    -2<栏位>   连接[文件2]指定的栏位。
    –help   显示帮助。
    –version   显示版本信息。

    注意一下:

    1、  文件必须根据join的key进行排序。(join应该是通过多路归并,所以效率比较高)

    2、  各种join方式对应如下

    内连接(inner join)                                      格式:join <文件1> <文件2>

    左连接(left join, 左外连接, left outer join)     格式:join -a1 <文件1> <文件2>

    右连接(right join, 右外连接,right outer join)  格式:join -a2 <文件1> <文件2>

    全连接(full join, 全外连接, full outer join)      格式:join -a1 -a2 <文件1> <文件2>

     

    我已有的每天的点击率文件格式是

    Bookid PV CLICK CTR

    以合并12月20号,和12月19号点击率为例,并且根据20号比19号点击率下降最多的排序,命令如下

    join -t”  “  -1 1 -2 1  -a 1 -a 2 -o 1.1 -o 2.1 -o 1.4 -o 2.4 -e “0″ ./ctr_1220 ./ctr1219 | awk -F” ” ‘{print $0″       “$4-$3}’ | sort -rn -k 5

  • 相关阅读:
    团队冲刺4
    团队冲刺3
    团队冲刺2
    团队冲刺1
    01大道至简阅读笔记
    03 梦断代码阅读笔记
    TOMCAT------>web资源访问
    Tomcat----->tomcat配置虚拟主机(搭建网站)mac
    Linux中常用操作命令
    tomcat------->简单配置
  • 原文地址:https://www.cnblogs.com/fx2008/p/4115126.html
Copyright © 2011-2022 走看看