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
原文地址:https://www.cnblogs.com/schips/p/13689860.html