無論是工作中使用還是應(yīng)付各種面試殿遂,linux uniq 都是必須要掌握的 linux 基本命令之一戏蔑。uniq 一般和 sort 一起用氧秘,用來對排序好的內(nèi)容去重
uniq 對排序好的內(nèi)容進行去重
語法:
uniq [-cdu][-f<欄位>][-s<字符位置>][-w<字符位置>][--help][--version][輸入文件][輸出文件]
選項:
-c或--count 在每列旁邊顯示該行重復(fù)出現(xiàn)的次數(shù)
-d或--repeated 僅顯示重復(fù)出現(xiàn)的行
-f<欄位>或--skip-fields=<欄位> 比較時跳過前n列寻行,從n+1列開始比較
-s<字符位置>或--skip-chars=<字符位置>比較時跳過前n個字符点晴,從n+1個字符開始比較
-u或--unique 僅顯示出現(xiàn)一次的行
-w<字符位置>或--check-chars=<字符位置>對每行第n個字符以后的內(nèi)容不作對照
這里也不多說感凤,就說一句,uniq 是對排序好的內(nèi)容去重粒督,一般和 sort 同時使用陪竿,好,直接上例子屠橄,先展示下原始數(shù)據(jù)
sort -k 2,2 sort.log
e bsd 1000 600 4M
c Debian 600 200 8K
b linux 1000 200 5K
a mac 2000 500 2K
f SUSE 4000 300 6M
c win7 2000 100 7G
d winxp 4000 300 3G
d winxp 500 300 3G
g winxp 500 300 3G
g winxp 500 300 3G
為了方便觀看族跛,我將原始數(shù)據(jù)和去重后的數(shù)據(jù)都展示出來,左邊為原始數(shù)據(jù)锐墙,右邊為去重后的數(shù)據(jù)
1礁哄、默認去重
sort -k 2,2 sort.log|uniq
e bsd 1000 600 4M e bsd 1000 600 4M
c Debian 600 200 8K c Debian 600 200 8K
b linux 1000 200 5K b linux 1000 200 5K
a mac 2000 500 2K a mac 2000 500 2K
f SUSE 4000 300 6M f SUSE 4000 300 6M
c win7 2000 100 7G c win7 2000 100 7G
d winxp 4000 300 3G d winxp 4000 300 3G
d winxp 500 300 3G d winxp 500 300 3G
g winxp 500 300 3G g winxp 500 300 3G
g winxp 500 300 3G
2、比較時跳過前n列溪北,從n+1列開始比較
sort -k 2,2 sort.log|uniq -f 3
e bsd 1000 600 4M e bsd 1000 600 4M
c Debian 600 200 8K c Debian 600 200 8K
b linux 1000 200 5K b linux 1000 200 5K
a mac 2000 500 2K a mac 2000 500 2K
f SUSE 4000 300 6M f SUSE 4000 300 6M
c win7 2000 100 7G c win7 2000 100 7G
d winxp 4000 300 3G d winxp 4000 300 3G
d winxp 500 300 3G
g winxp 500 300 3G
g winxp 500 300 3G
3桐绒、對每行第n個字符以后的內(nèi)容不作對照,忽略n以后的字符
sort -k 2,2 sort.log|uniq -w 1
e bsd 1000 600 4M e bsd 1000 600 4M
c Debian 600 200 8K c Debian 600 200 8K
b linux 1000 200 5K b linux 1000 200 5K
a mac 2000 500 2K a mac 2000 500 2K
f SUSE 4000 300 6M f SUSE 4000 300 6M
c win7 2000 100 7G c win7 2000 100 7G
d winxp 4000 300 3G d winxp 4000 300 3G
d winxp 500 300 3G g winxp 500 300 3G
g winxp 500 300 3G
g winxp 500 300 3G
4刻盐、比較時跳過前n個字符掏膏,從n+1個字符開始比較
sort -k 2,2 sort.log|uniq -s 1
e bsd 1000 600 4M e bsd 1000 600 4M
c Debian 600 200 8K c Debian 600 200 8K
b linux 1000 200 5K b linux 1000 200 5K
a mac 2000 500 2K a mac 2000 500 2K
f SUSE 4000 300 6M f SUSE 4000 300 6M
c win7 2000 100 7G c win7 2000 100 7G
d winxp 4000 300 3G d winxp 4000 300 3G
d winxp 500 300 3G d winxp 500 300 3G
g winxp 500 300 3G
g winxp 500 300 3G
5、在每列旁邊顯示該行重復(fù)出現(xiàn)的次數(shù)敦锌,并僅顯示出現(xiàn)一次的行
sort -k 2,2 sort.log|uniq -c -u
e bsd 1000 600 4M 1 e bsd 1000 600 4M
c Debian 600 200 8K 1 c Debian 600 200 8K
b linux 1000 200 5K 1 b linux 1000 200 5K
a mac 2000 500 2K 1 a mac 2000 500 2K
f SUSE 4000 300 6M 1 f SUSE 4000 300 6M
c win7 2000 100 7G 1 c win7 2000 100 7G
d winxp 4000 300 3G 1 d winxp 4000 300 3G
d winxp 500 300 3G 1 d winxp 500 300 3G
g winxp 500 300 3G
g winxp 500 300 3G
6馒疹、在每列旁邊顯示該行重復(fù)出現(xiàn)的次數(shù),并僅顯示重復(fù)出現(xiàn)的行
sort -k 2,2 sort.log|uniq -d -c
e bsd 1000 600 4M 2 g winxp 500 300 3G
c Debian 600 200 8K
b linux 1000 200 5K
a mac 2000 500 2K
f SUSE 4000 300 6M
c win7 2000 100 7G
d winxp 4000 300 3G
d winxp 500 300 3G
g winxp 500 300 3G
g winxp 500 300 3G
uniq整理完了乙墙,歡迎大牛指教