解析Shell程式設計中的 「去重「

2021-10-23 09:43:12 字數 1195 閱讀 8808

原因:

在編寫自動化指令碼的時候發現,需要使用到迴圈來遍歷某個檔案中的內容,但此檔案中存在大量的重複無用的資料,需要將其----去重

實踐中:

採用sortuniq命令來對其進行去重,並發現兩者不同

實際例子如下

此處處理的檔名為data

[root@ip-10-0-1-169 ~]

# cat data

123456789

55v1g52d4

15613g645

15613g645

15613g645

15613g645

15613g645

123456789

123456789

123456789

15613g645

15613g645

15613g645

使用sort 處理資料

[root@ip-10-0-1-169 ~]

# cat data |sort -u

123456789

15613g645

55v1g52d4

使用uniq處理資料

[root@ip-10-0-1-169 ~]

# cat data |uniq

123456789

55v1g52d4

15613g645

123456789

15613g645

[root@ip-10-0-1-169 ~]

# cat data |uniq -u

123456789

55v1g52d4

由上述例子可得:

sort:

串聯排序所有指定檔案並將結果寫到標準輸出,此處加上-u引數, --unique 輸出一次排序結果

uniq:

用於檢查及刪除文字檔案中重複出現的行列,一般與 sort 命令結合使用。uniq 可檢查文字檔案中重複出現的行列

shell不排序去重

一條命令搞定 awk a 0 file 如果是第一次出現a 0 的值為0 假 而 a 0 的值就為1 真 之後就執行print 0 第二次或者兩次以上的出現a 0 的值就為大於0的整數值 真 例如1,2,3.而 a 0 的值就為0 假 之後就不執行print 0操作 awk 0 in a patte...

shell檔案合併去重

第一 兩個檔案的交集,並集 前提條件 每個檔案中不得有重複行 取出兩個檔案的並集 重複的行只保留乙份 取出兩個檔案的交集 只留下同時存在於兩個檔案中的檔案 刪除交集,留下其他的行 cat file1 file2 sort uniq file3 cat file1 file2 sort uniq d ...

shell字串去重

之前寫了乙個指令碼,裡面每次執行的時候都需要給path疊加乙個路徑,這樣一來,多次執行這個指令碼就會造成path包含有重複的字段。解決方法如下 export path echo path sed s n g sort uniq tr s n sed s g 解釋 1.使用sed將path中的 替換為...