騷年,你有仔細(xì)觀察者兩個命令嗎?

創(chuàng)新互聯(lián)建站專注骨干網(wǎng)絡(luò)服務(wù)器租用10余年,服務(wù)更有保障!服務(wù)器租用,資陽主機托管 成都服務(wù)器租用,成都服務(wù)器托管,骨干網(wǎng)絡(luò)帶寬,享受低延遲,高速訪問。靈活、實現(xiàn)低成本的共享或公網(wǎng)數(shù)據(jù)中心高速帶寬的專屬高性能服務(wù)器。
舉個例子:
文件filea為:
a
b
c
c
d
b
執(zhí)行sort filea |uniq -u |wc -l,先排序,則刪除了c和b的行;
執(zhí)行sort -u filea |wc -l,排序,同時刪除相同的行,則只刪除c行。
①選中范圍;②查找重復(fù)的文本內(nèi)容,如“今天的大霧今天的大霧”;③替換,替換內(nèi)容“今天的大霧”,全都替換、確定。
cat file.csv | awk -F '\t' '{print $2}'
'\t'指的是file.csv不同列以'\t'分割,如果的是以其他符號分割,換成其她符號;
'{print $2}'是指取第2列,此處從1開始計數(shù),第1列,第2列;
一般去重之前要進(jìn)行排序
cat file.csv | awk -F '\t' '{print $2}'?| sort | uniq
前半部分與命令1一樣,后面加上| sort | uniq
比如通過命令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 是計數(shù)有多少行
寫個腳本來做就是了. ruby, awk都成
awk?'{if(!($0?in?a)){print?$0};a[$0];}'
linux去重命令是什么呢?
在介紹uniq命令之前,我們先來新建在下面的案例中需要用到的文件/tmp/uniq.txt,內(nèi)容如下
默認(rèn)情況下uniq只會檢索相鄰的重復(fù)數(shù)據(jù)從而去重。在/tmp/uniq.txt中雖然“onmpw web site” 有三條,但是其中一條是和其他兩條不相鄰的,所以只去重了一條,同理“error php function”也是這種情況。
鑒于以上的檢索機制,所以uniq一般情況下要和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ù)項都已經(jīng)經(jīng)過去重處理了。
好了,小試牛刀一把以后,下面我們開始對uniq命令的選項進(jìn)行簡單的介紹。
-c 統(tǒng)計每一行數(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)了三次。其余的都沒有重復(fù)項所以為1。
-i 忽略大小寫
在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ū)分大小寫的。使用-i可以忽略掉大小寫問題
復(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)在再看是不是大小寫已經(jīng)忽略掉了。
-u 只輸出沒有重復(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”都沒有被輸出。
-w N 表示從第一個字符開始只檢索N個字符來判重。
復(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只對前兩個字符進(jìn)行檢索,recruit 和 repeat前兩個字符都是re,所以這兩行也被認(rèn)為是重復(fù)的。
-f N 表示略過前面N個字段,從第N+1個字段開始檢索重復(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ù)制代碼
我們在結(jié)果中可以看到,這是略過前面的2個字段,從第三個字段開始判重的。“recruise page site” 和 “onmpw web site”的第三個字段相同,所以被認(rèn)為是相同的數(shù)據(jù)。但是我們看到,“wello web site”和“onmpw web site”不但第三個字段相同,第二個也相同。那為什么它不被計入“onmpw web site”的重復(fù)數(shù)據(jù)中呢。對于這個問題就要回到前面說的,uniq只檢測相鄰的數(shù)據(jù)是否是重復(fù)的。
要解決這個問題還需要在sort命令上著手。還記得sort命令的-k選項嗎,沒錯,我們就用它來解決。
復(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表示略過前面N個字符,關(guān)于這個選項的例子我們這里就不再舉了,該選項和-f N的用法差不多。只不過-f N是略過前面N個字段;-s是略過前面N個字符。
-d 只輸出有重復(fù)項的第一條的數(shù)據(jù)。
sort 1.txt | uniq -idw 2
repeat no data
error php function
onmpw web site
結(jié)果只有這三條。為什么會有“repeat no data”這條數(shù)據(jù),這里注意-w 2的應(yīng)用。
-D 對于重復(fù)項全部輸出
復(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的選項的所有常用的命令已經(jīng)都介紹完了。關(guān)于uniq更詳細(xì)的信息可以使用命令info uniq。
本文題目:linux命令對某行去重的簡單介紹
網(wǎng)頁路徑:http://chinadenli.net/article10/hedido.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、面包屑導(dǎo)航、微信公眾號、關(guān)鍵詞優(yōu)化、靜態(tài)網(wǎng)站、自適應(yīng)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)