LINUX中如何不經過排序刪除檔案中重複的行(相同行,只保留

時間 2021-07-12 15:34:45

1樓:匿名使用者

樓上 uniq必須是連續的重複才行把

用awk肯定行

這是一個cu的精華帖,差不多,對於你的問題你給稍等我修改一下。(ps感謝紅袖添香大姐)

cu精華 經典回顧

#假設我有如下檔案:

#cat aa

#123 def1 456

#345 def2 812

#123 def3 563

#322 def4 684

#123 def5 879

#......................

#現在我想把第一列中欄位相同的合併,第一列不相同的則保留,合併的原則就是保留第一個出現的前兩個欄位,第三個欄位則把結果相加,以上面的示例為例:

##就是對於123開頭的需要合併,合併後應該成為如下:

#cat aa

#123 def1 1898

#345 def2 812

#322 def4 684

#用shell如何實現?

#希望各位幫助,,謝謝,,

#要求總結:

#1 合併相同的第一列資料,並且計算第三列和

#2 第二列只保留第一次出現

#3 第一列順序不變

覺得這個問題很經典,所以從cu論壇轉過來了。

請大家一起學習

我們站在巨人的肩膀上。

問題補充:

看不太懂實現可以講一下思路嗎?

a[$1]+=$3

if(length(b[$1])==0)b[$1]=$2

我是這樣做的

--------------------------2

謝謝你的補充, 已經明白了你對split的適用技巧,是用split(a[$1],tmp)在碰到匹配的$1時取出以前的統計結然後再用$3加上以前的結果是吧,很巧妙。謝謝

但是有2個問題:

1不滿足 第二列保留第一次出現記錄(現在是保留最後一次出現)

2不滿足 第一列按照原來檔案順序出現

看看這個

awk 'being

end' filename

#######################

#######################

#######################

這樣就行了

#,/bin/bash

awk 'begin

end' data

前提是你的資料檔案裡面每行沒有空格,如果有用-f設定一個沒有的字元作分隔符就。

2樓:匿名使用者

cat file_a | uniq > file_b

linux檔案行排序去重結果不同sort和uniq

3樓:匿名使用者

uniq命令的幫助bai:

-u, --unique:only print unique lines

第一個方du法中,你加上-u選項導致zhi了daouniq只輸出唯一存專在的行屬

,有重複的行被過濾掉了

所以,問題出在你的地一種方法上

解決方法:uniq中不適用-u選項

linux中passwd檔案中每一行以:為分隔符,提取出每行的最後一列,排序去重,要求去重後顯示重複欄位的個數

4樓:叉燒帝

# cat /etc/passwd |cut -d':' -f7|sort|uniq -c

linux作業系統中,刪除檔案的命令是什麼

在linux中建立檔案很容易,系統中隨時會有檔案變得過時且毫無用處。使用者可以用rm命令將其刪除。該命令的功能為刪除一個目錄中的一個或多個檔案或目錄,它也可以將某個目錄及其下的所有檔案及子目錄均刪除。對於連結檔案,只是刪除了連結,原有檔案均保持不變。rm命令的一般形式為 rm 選項 檔案 如果沒有使...

excel中如何刪除有多項重複的行

自有自在 先按主要關鍵字 號碼和次要關鍵字姓名升序排,然後用篩選中的高階篩選,勾選 選擇不重複記錄,也可將篩選結果到新 中! 1.選定表頭 資料 篩選 自動篩選 單擊 號碼 一列的篩選箭頭 單擊 空白 在行號欄選定篩選出來的所有空白行進行刪除 返回 全部 儲存。這樣沒 號碼的行已經刪除。2.刪除重複...

如何在excel中刪除連續重複的資料

苗喬恩 vba 如下 sub del dim a,i a range a65536 end xlup rowfor i 2 to a if range a i range a i 1 and range a i then range a i delete shift xlup i i 1 next ...