linux uniq去重不生效

2021-09-27 11:26:28 字數 452 閱讀 3659

實現對nginx的訪問ip進行統計,出現出重不成功;

shell: cat access.log | awk 『』 | uniq -c

原因:因為uniq去重只對相鄰的資料進行迭代處理,當遇到相鄰的資料不重複時,就會該處的資料加一,進行新的迭代處理。

演算法過程如下

key = 1

uniq(file, key):

if line[key] == line[key+1]:

刪除line[key+1],移動後續行

uniq(file,1)

else :

uniq(file, key+1)

所以對檔案資料進行去重處理時,先對檔案的資料進行排序,然後再進行去重處理:

#輸出訪問量排名前10的ip位址和訪問量

cat test.txt | sort | uniq -c | sork -rn | head -l

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...

斷點不生效

我是單獨某乙個cpp檔案裡的斷點不生效了,工程內其他cpp檔案斷點還仍然生效!是由於我debug執行時候修改了該cpp檔案導致的。工具 選項 除錯 要求原始檔與原始版本完成匹配 去掉勾 require source files to exactly match the original versio...

gitignore 不生效問題

在git中如果想忽略掉某個檔案,不讓這個檔案提交到版本庫中,可以使用修改根目錄中 gitignore 檔案的方法 如無,則需自己手工建立此檔案 這個檔案每一行儲存了乙個匹配的規則例如 1 2 3 4 5 6 7 此為注釋 將被 git 忽略 a 忽略所有 a 結尾的檔案 lib.a 但 lib.a ...