zoukankan      html  css  js  c++  java
  • Linux下文件排序去重取交集差集

    运营提了个导数据的需求,需要把某段时间登陆用户id导出来,由于数据量大,分了多个文件保存。数据保存格式,每一行一个用户id。刚开始打算用数据,由于数据量大,就放弃了,存数据库去重,取数据交集差集比较方便,比如在A时间登陆了B时间没有登陆的用户(差集)。Linux下有操作文件的命令,而且功能也很强大。下面是我的备注(经我整理,来源于互联网):

    ls ./lc* | xargs -t -i sort {} -o {}
    当前目录以lc开头的文件批量排序,结果保存到原文件中

    ls ./lc* | xargs -t -i uniq {} ./uniq/{}
    当前目录以lc开头的文件批量去重,结果保存到与原文件名相同uniq目录下

    cat lcUsrLoginData20120601.txt lcUsrLoginData20120616.txt | sort | uniq > ../month/lcUsrLoginData201206.txt
    合并当前目录下两文件并排序并去重,结果保存到当前目录的父目录的子目录month中

    cat a.txt b.txt | sort | uniq -d | wc -l
    comm -12 a.txt b.txt | wc -l
    计算两个文件交集元素个数(为什么最后是换行符才行?)

    cat a.txt b.txt | sort | uniq -d > temp.txt
    cat a.txt temp.txt | sort | uniq -u > diff.txt
    计算两个文件的差集

  • 相关阅读:
    C语言之回调函数&模块化
    680. 验证回文字符串 Ⅱ
    C++指针数组和数组指针
    345. 反转字符串中的元音字母
    633.平方数之和
    IDM使用介绍篇
    路由器无线桥接WDS
    约数的个数
    密码翻译
    查找学生信息
  • 原文地址:https://www.cnblogs.com/wadeyu/p/2769802.html
Copyright © 2011-2022 走看看