linux命令將文本去重 linux 重寫命令

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

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

為襄城等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及襄城網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站設(shè)計、成都做網(wǎng)站、襄城網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

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

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

一般去重之前要進行排序

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ù)有多少行

Linux文本操作常用命令

在Linux系統(tǒng)里常用于文本查看、操作、統(tǒng)計的命令:

通過多敲鍵盤,形成手感 肌肉記憶 ,熟練掌握這些命令,在以后生信分析中游刃有余。以下是每個命令的詳細的介紹(主要是跟著 生信技能樹小郭老師 學(xué)習(xí)做的筆記)

接下來通過示例把10個命令的常用參數(shù)和用法展示出來:

參數(shù)的用法介紹:

注意事項:

用 cat 命令可以 查看文本 ,也可以 編輯文本 ,編輯文本要加 符號,退出時,另起一行,按 control C 退出

zcat可以查看壓縮的文本文件,tac逆向查看

結(jié)合 管道符| 使用

head / tail -n :查看文件的前 / 后 n 行,默認 10 行 (在R語言里head和tail默認是前6行)。

less命令用得最多 ,more命令用得比較少

3.1 less命令

less [參數(shù)] 文件名

less命令重要的補充用法1 :

需要注意 退出 :只要使用less命令, 按q鍵

less命令重要的補充用法2 :

參數(shù)用法:

less命令 不加參數(shù) 查看文件:

less命令加 -N參數(shù) 查看文件:顯示行號

less命令加 -S參數(shù) 查看文件:單行顯示,非常規(guī)整

對比:less和cat命令顯示文本行號的用法:less -N,cat -n

3.2 more命令

**more ** 逐頁查看,按空格翻頁,按回車換行 ,more命令一般很少用,熟練掌握less命令就好

查看壓縮文件

wc 統(tǒng)計字符是也把換行符統(tǒng)計進去,但是別的命令不一定會把換行符算進去,。

常見參數(shù):

切記:用less命令,按q退出

cut命令是按關(guān)鍵詞來切的

常見參數(shù):

排列前:

排列后:

解釋:1和0比,1大;7和0比,7大…在sort字典排序里,100816比1737小,所以100816排在前面。

命令行查看一個表格結(jié)構(gòu)時,因為制表符對齊的原因,出現(xiàn)一個錯位的現(xiàn)象。還有 字典排序 可能和我們平時的認知不一樣,所以 加上-n參數(shù) , 讓數(shù)值有數(shù)學(xué)意義上的大小來排序 。

uniq命令去重,只有兩行出現(xiàn)重復(fù),而且是相鄰的兩行,如果不相鄰,即使出現(xiàn)兩行一模一樣,不會去重。

uniq命令通常和sort命令搭配使用

換其它文件試試

總之,uniq命令使用時經(jīng)常和sort一起

常見參數(shù):

常見用法1:

paste file1 file2

-s :按行合并 演示

常見用法2 : paste - -

常見參數(shù):

要養(yǎng)成一個好習(xí)慣,原始數(shù)據(jù)不要輕易修改,修改的東西另外保存,文本保存用 (重定向)或是 (追加)

1. 用 less 查看 example.gtf ,然后管道符傳遞給 wc

2. 截取 example.gtf 第 9 列的內(nèi)容

3. 在第2步的基礎(chǔ)上截取分號分割的第1列

4. 在第3步的基礎(chǔ)上排序、去重復(fù)并統(tǒng)計

5. 在第4步的基礎(chǔ)上,將空格替換成制表符

補充小知識 :

清屏 :control L

查看歷史(輸入過的)命令 :history

linux去重不要排序

寫個腳本來做就是了. ruby, awk都成

awk?'{if(!($0?in?a)){print?$0};a[$0];}'

linux去重命令

linux去重命令是什么呢?

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

默認情況下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命令的選項進行簡單的介紹。

-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默認是區(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只對前兩個字符進行檢索,recruit 和 repeat前兩個字符都是re,所以這兩行也被認為是重復(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個字段,從第三個字段開始判重的?!皉ecruise page site” 和 “onmpw web site”的第三個字段相同,所以被認為是相同的數(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更詳細的信息可以使用命令info uniq。

linux:如何對文本里的相同行進行去重

①選中范圍;②查找重復(fù)的文本內(nèi)容,如“今天的大霧今天的大霧”;③替換,替換內(nèi)容“今天的大霧”,全都替換、確定。

網(wǎng)頁標(biāo)題:linux命令將文本去重 linux 重寫命令
網(wǎng)頁網(wǎng)址:http://muchs.cn/article42/hjdgec.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動態(tài)網(wǎng)站、微信公眾號、網(wǎng)站收錄、服務(wù)器托管、品牌網(wǎng)站設(shè)計、品牌網(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)

h5響應(yīng)式網(wǎng)站建設(shè)