zoukankan      html  css  js  c++  java
  • shell 根据 指定列 进行 去除 重复行

    根据指定列进行去除重复行

    这里的重复是指如果两行的某一列数据相同,则认为是重复数据。

    例如:第1行与第2行数据,其中的第2列(以- 作为分隔符)明显是重复的。

    100069 - ARM Compiler armasm User Guide
    100069 - ARM Compiler armasm User Guide
    100069 - Arm Compiler armasm User Guide
    100069 - Arm Compiler armasm User Guide
    100071 - Arm Compiler fromelf User Guide
    100072 - ARM Compiler armar User Guide
    

    现在我们如何去除列相同的重复项。

    步骤

    假设源文件名为 raw_data
    第一步: sort 进行排序

    sort raw_data -k1 > 1_sort_data
    
    ## 语法解释:
    ## sort -t, -k1   
    ## -t,   指定文件记录域分隔符为","  
    ## -k1  是指根据第1列进行排序
    

    第二步: 用awk对相邻两行数据进行比较如果第一列的数据相同则去除重复行(保留第一个相同的行)

    cat 1_sort_data| awk -F- '!i[$1]++'  > data_ok
    

    合并起来便是 :

    sort raw_data -k1  | awk -F- '!i[$1]++'  > data_ok
    
  • 相关阅读:
    C语言中链接影响程序的细节
    Object类的方法
    基于误差反向传播法的神经网络学习的全貌图
    Attention Scaling for Crowd Counting
    plt画图
    机器学习相关技巧
    数值微分
    Noip2017 Day2 T1 奶酪
    串(string)
    八皇后问题
  • 原文地址:https://www.cnblogs.com/schips/p/13689860.html
Copyright © 2011-2022 走看看