作者Uruzu (...)
看板Linux
標題[問題] 如何在VIM中刪除重複出現的行
時間Sat Jan 10 22:51:33 2009
前提:
我在跑完模擬之後會產生一堆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
推 Adama:用sed似乎比較好 01/10 23:12
推 ViewMoon::%s/log.*/log/g 01/10 23:35
→ ViewMoon::%!sort -u 01/10 23:35