笨命令

110晚上在羣裏slamdunk聊起他要在幾百個電話號碼裏找出重複的來,我突然想起今天上午我學的sed命令來了,就叫slamdunk把那個有電話的文本文件給我,讓我練練,slamdunk就把電話號碼給我了。
一些簡單的命令而功能強大的命令還不會,下面只是一個笨方法。
其結構大概是這樣的:
[8615940364717] to [\\.\COM10--8615801783740]

[8613664604507] to [\\.\COM10--8615801783740]

[8613831791046] to [\\.\COM10--8615801783740]

[8615959678020] to [\\.\COM10--8615801783740

 [8613785642473] to [\\.\COM10--8615801783740

 [8613915219073] to [\\.\COM10--8615801783740]

[8613859429423] to [\\.\COM10--8615801783740

[8613811268177] to [\\.\COM10--8615801783740

[8613819131161] to [\\.\COM10--8615801783740]

8613508305305] to [\\.\COM10--8615801783740]

[8613646175482] to [\\.\COM10--8615801783740]

8613575017712] to [\\.\COM10--8615801783740

8613932035877] to [\\.\COM10--8615801783740

[8615972318131] to [\\.\COM10--8615801783740]

[8615962985577] to [\\.\COM10--8615801783740]

[8613585458567] to [\\.\COM10--8615801783740]

8613851459841] to [\\.\COM10--8615801783740]
不過還有幾個個別的。
下面先說說我的笨命令吧
1、先直接在XP上覆制,用secureCRT連到LINUXvi建一個文件,直接複製上去,省的有些回車符不一樣。取名:phone
2、大概看了一下,找了找規律,coolerfeng說電話是11個數,這是規律,可我只用了開頭數字的規律和分段。
cat phone | cut -d ']' -f 1 | sed 's/\[86//g' > phone2
(因爲只需要第一列的電話,把以先把第一列提出來,然後把開頭是“[86”替換成無,就是刪除了。)
3cat phone | cut -d ']' -f 1 | sed 's/\[86//g' | sed 's/\[//g' > phone3
cat phone3 | sed 's/^86//g' | sed 's/^009//g' | sed 's/0060//g'  | grep '^1' | more > phone4
繼續替換一些別的形式開頭的,主要是想把格式都一樣的排列起來。怕亂了,所以每做一些改變就存一下。用sed替換完了的結果,有的行還有些日期什麼的,還好這個文件不是太大,還能大概看一下。然後就grep '^1'這個把電話號碼全部找出來。如果有1月開頭的行也不怕,下面還可以過濾呢。
4cat phone4 | sort -n | uniq -c > phone5
sort –n 進行排序 ,用uniq –c 進行計算並去掉重複的。這樣在phone5裏有會那個重複幾次有顯示了。
5cat phone5 | sort –n
上面phone5裏是在那裏重複了就在那裏標記,而不是在一起,不太容易看,再用sort –n排一次序,就可以按重複1次、2次、3次的這麼排下來了。
這樣就找出重複的出來了,我知道這是一種笨方法,還請高手們指教一些更簡單,更高效的方法。謝謝!
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章