linux里面去重的命令 linux文本去重

linux去重命令

linux去重命令是什么呢?

寧津網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)2013年開(kāi)創(chuàng)至今到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專(zhuān)注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。

在介紹uniq命令之前,我們先來(lái)新建在下面的案例中需要用到的文件/tmp/uniq.txt,內(nèi)容如下

默認(rèn)情況下uniq只會(huì)檢索相鄰的重復(fù)數(shù)據(jù)從而去重。在/tmp/uniq.txt中雖然“onmpw web site” 有三條,但是其中一條是和其他兩條不相鄰的,所以只去重了一條,同理“error php function”也是這種情況。

鑒于以上的檢索機(jī)制,所以u(píng)niq一般情況下要和sort命令一塊兒使用。

復(fù)制代碼

# sort 1.txt | uniq

alpha css web

cat linux command

error php function

hello world

onmpw web site

recruise page site

repeat no data

wello web site

復(fù)制代碼

現(xiàn)在再看是不是所有的重復(fù)項(xiàng)都已經(jīng)經(jīng)過(guò)去重處理了。

好了,小試牛刀一把以后,下面我們開(kāi)始對(duì)uniq命令的選項(xiàng)進(jìn)行簡(jiǎn)單的介紹。

-c 統(tǒng)計(jì)每一行數(shù)據(jù)的重復(fù)次數(shù)

復(fù)制代碼

sort 1.txt | uniq -c

1 alpha css web

1 cat linux command

2 error php function

1 hello world

3 onmpw web site

1 recruise page site

1 repeat no data

1 wello web site

復(fù)制代碼

我們看 “error php function”出現(xiàn)了兩次,“onmpw web site”出現(xiàn)了三次。其余的都沒(méi)有重復(fù)項(xiàng)所以為1。

-i 忽略大小寫(xiě)

在1.txt中添加一行數(shù)據(jù) “Error PHP function”

復(fù)制代碼

cat 1.txt

alpha css web

cat linux command

error php function

hello world

onmpw web site

onmpw web site

wello web site

Error PHP function

recruise page site

error php function

repeat no data

onmpw web site

復(fù)制代碼

復(fù)制代碼

sort 1.txt | uniq –c

1 alpha css web

1 cat linux command

2 error php function

1 Error PHP function

1 hello world

3 onmpw web site

1 recruise page site

1 repeat no data

1 wello web site

復(fù)制代碼

我們看結(jié)果,uniq默認(rèn)是區(qū)分大小寫(xiě)的。使用-i可以忽略掉大小寫(xiě)問(wèn)題

復(fù)制代碼

sort 1.txt | uniq –c –i

1 alpha css web

1 cat linux command

3 error php function

1 hello world

3 onmpw web site

1 recruise page site

1 repeat no data

1 wello web site

復(fù)制代碼

現(xiàn)在再看是不是大小寫(xiě)已經(jīng)忽略掉了。

-u 只輸出沒(méi)有重復(fù)的數(shù)據(jù)

復(fù)制代碼

sort 1.txt | uniq –iu

alpha css web

cat linux command

hello world

recruise page site

repeat no data

wello web site

復(fù)制代碼

看到?jīng)],結(jié)果中的“error php function”和“onmpw web site”都沒(méi)有被輸出。

-w N 表示從第一個(gè)字符開(kāi)始只檢索N個(gè)字符來(lái)判重。

復(fù)制代碼

sort 1.txt | uniq –iw 2

alpha css web

cat linux command

error php function

hello world

onmpw web site

recruise page site

wello web site

復(fù)制代碼

這里我們讓uniq只對(duì)前兩個(gè)字符進(jìn)行檢索,recruit 和 repeat前兩個(gè)字符都是re,所以這兩行也被認(rèn)為是重復(fù)的。

-f N 表示略過(guò)前面N個(gè)字段,從第N+1個(gè)字段開(kāi)始檢索重復(fù)數(shù)據(jù)。以空格符或者tab鍵為分隔符。

復(fù)制代碼

sort 1.txt | uniq –icf 2

1 alpha css web

1 cat linux command

3 error php function

1 hello world

4 onmpw web site

1 repeat no data

1 wello web site

復(fù)制代碼

我們?cè)诮Y(jié)果中可以看到,這是略過(guò)前面的2個(gè)字段,從第三個(gè)字段開(kāi)始判重的?!皉ecruise page site” 和 “onmpw web site”的第三個(gè)字段相同,所以被認(rèn)為是相同的數(shù)據(jù)。但是我們看到,“wello web site”和“onmpw web site”不但第三個(gè)字段相同,第二個(gè)也相同。那為什么它不被計(jì)入“onmpw web site”的重復(fù)數(shù)據(jù)中呢。對(duì)于這個(gè)問(wèn)題就要回到前面說(shuō)的,uniq只檢測(cè)相鄰的數(shù)據(jù)是否是重復(fù)的。

要解決這個(gè)問(wèn)題還需要在sort命令上著手。還記得sort命令的-k選項(xiàng)嗎,沒(méi)錯(cuò),我們就用它來(lái)解決。

復(fù)制代碼

sort –k 2 1.txt | uniq –icf 2

1 alpha css web

1 cat linux command

1 repeat no data

1 recruise page site

3 error php function

4 onmpw web site

1 hello world

復(fù)制代碼

我們看,是不是解決了。

-s N表示略過(guò)前面N個(gè)字符,關(guān)于這個(gè)選項(xiàng)的例子我們這里就不再舉了,該選項(xiàng)和-f N的用法差不多。只不過(guò)-f N是略過(guò)前面N個(gè)字段;-s是略過(guò)前面N個(gè)字符。

-d 只輸出有重復(fù)項(xiàng)的第一條的數(shù)據(jù)。

sort 1.txt | uniq -idw 2

repeat no data

error php function

onmpw web site

結(jié)果只有這三條。為什么會(huì)有“repeat no data”這條數(shù)據(jù),這里注意-w 2的應(yīng)用。

-D 對(duì)于重復(fù)項(xiàng)全部輸出

復(fù)制代碼

sort 1.txt | uniq –iDw 2

repeat no data

recruise page site

error php function

error php function

Error PHP function

onmpw web site

onmpw web site

onmpw web site

復(fù)制代碼

好了,關(guān)于uniq的選項(xiàng)的所有常用的命令已經(jīng)都介紹完了。關(guān)于uniq更詳細(xì)的信息可以使用命令info uniq。

linux命令對(duì)某一列去重/統(tǒng)計(jì)

cat file.csv | awk -F '\t' '{print $2}'

'\t'指的是file.csv不同列以'\t'分割,如果的是以其他符號(hào)分割,換成其她符號(hào);

'{print $2}'是指取第2列,此處從1開(kāi)始計(jì)數(shù),第1列,第2列;

一般去重之前要進(jìn)行排序

cat file.csv | awk -F '\t' '{print $2}'?| sort | uniq

前半部分與命令1一樣,后面加上| sort | uniq

比如通過(guò)命令2發(fā)現(xiàn),第2列取值有兩種,分別是'neg'和‘pos’,那么我想知道有多少行的第2列取值為'pos',多少行的第2列取值為'neg'。

cat file.csv | awk -F '\t' '{print $2}'?|?grep -o 'neg'| wc -l

前半部分與命令1一樣,后面加上?|?grep -o 'neg'| wc -l

grep -o 'neg'就是取出取值為'neg'的行

wc -l 是計(jì)數(shù)有多少行

Linux里面uniq -c命令作用是什么?

uniq 對(duì)排序好的內(nèi)容進(jìn)行去重

-c 顯示輸出中,在每行行首加上本行在文件中出現(xiàn)的次數(shù)。

新聞標(biāo)題:linux里面去重的命令 linux文本去重
網(wǎng)頁(yè)URL:http://muchs.cn/article38/dossisp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號(hào)、網(wǎng)站制作、Google、品牌網(wǎng)站制作、移動(dòng)網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站