shell awk按域去除重複行

2022-08-19 09:06:06 字數 590 閱讀 8066

首先解釋一下什麼叫「按域去除重複行」:

有的時候我們需要去除的重複行並不是整行都重複,兩行的其中一列的元素相同我們有的時候就需要認定這兩行重複,因此有了今天的內容。

去除重複行shell有乙個原生命令但是不太好使應為這個命令找的重複行是上下文的重複行,也就是說需要提前排序,這樣就增加了不必要的麻煩,我們在這裡選擇使用awk工具進行重複行的去除。

命令如下:

awk

'!array[$0]++

' filename

解釋一下這行**,由於awk工作方式的特殊性,也就是按行讀入按行輸出,中間引號內的語句就是以[$0]為元素去map剩下的行,$0代表整行,把0換成數字就是行的index,!表示如果存在相同行就跳過,沒有相同行才要輸出,++是迭代過程。

另外,如果要將結果重定向到檔案中,需要使用shell的檔案o/i符號">"進行操作。

擴充套件:如果我們要找兩個或者多個列相同的行怎麼辦?

在定義的時候我們可以如下寫法:

awk

'!array[$1,$2]++

' filename

這樣就可以鑑別兩列相同的行,多列亦如此。

R語言資料按行去除重複

在臨床上,偶爾會出現需要分析病例資料的情況。通常為了保護隱私,患者的個人識別相關的關鍵資訊會被剔除只保留病歷號,但是患者的就診行為可能不止一次,這也就導致了我們的資料出現了重複,把這些資料直接放到一起進行分析顯然是不科學的。首先觀察自己的資料,如果是用行來代表觀測的話,可以使用dplyr包disti...

pandas 去除重複行

方法 dataframe.drop duplicates subset none,keep first inplace false 1引數 這個drop duplicate方法是對dataframe格式的資料,去除特定列下面的重複行。返回dataframe格式的資料。subset column la...

sql 去除重複行

最近做乙個資料庫的資料匯入功能,發現聯合主鍵約束導致不能匯入,原因是源表中有重複資料,但是源表中又沒有主鍵,很是麻煩。經過努力終於解決了,現在就來和大家分享一下,有更好的辦法的可以相互交流。有重複資料主要有一下幾種情況 1.存在兩條完全相同的紀錄 這是最簡單的一種情況,用關鍵字distinct就可以...