原因:在編寫自動化指令碼的時候發現,需要使用到迴圈來遍歷某個檔案中的內容,但此檔案中存在大量的重複無用的資料,需要將其----
去重
實踐中:採用
sort
和uniq
命令來對其進行去重,並發現兩者不同
實際例子如下此處處理的檔名為
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中的 替換為...