[問題] 如何在VIM中刪除重複出現的行

看板Linux作者 (...)時間17年前 (2009/01/10 22:51), 編輯推噓2(201)
留言3則, 2人參與, 最新討論串1/1
前提: 我在跑完模擬之後會產生一堆log檔,之後利用grep把含有error字串的file和message 抓到同一個檔裏 內容長的像下列的樣子 ../sim1/nc01102011.log:@15345 error: AAAA ../sim1/nc01102011.log:@15354 error: BBBB ../sim2/nc01101654.log:@23487 error: AAAA ../sim3/nc01100812.log:@8927 error: DDDD ../sim3/nc01100812.log:@8990 error: CCCC ../sim3/nc01101923.log:@25687 error: BBBB 有時一個log中會同時有兩到三個error的message出現 不知道有沒有方法把有相同檔名的那行刪掉,只留第一個就好了? 我的想法是 :g/\(nc\d\+\)/;/&/d 先找到file name,再往下找相同的pattern,刪除 但是"&"在第二次search上無法作用 請問有人可以幫忙嗎? (當然我可以寫個script解決這個問題,但是我想試試看能不能只用vi就解決了) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.66.168.16

01/10 23:12, , 1F
用sed似乎比較好
01/10 23:12, 1F

01/10 23:35, , 2F
:%s/log.*/log/g
01/10 23:35, 2F

01/10 23:35, , 3F
:%!sort -u
01/10 23:35, 3F
文章代碼(AID): #19QBNs2N (Linux)
文章代碼(AID): #19QBNs2N (Linux)