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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM