真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

linux命令去重 linux 去重復(fù)

Linux文本操作常用命令

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

創(chuàng)新互聯(lián)專注于企業(yè)網(wǎng)絡(luò)營銷推廣、網(wǎng)站重做改版、新市網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5開發(fā)、商城系統(tǒng)網(wǎng)站開發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為新市等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

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

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

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

注意事項:

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

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

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

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

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

3.1 less命令

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

less命令重要的補(bǔ)充用法1 :

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

less命令重要的補(bǔ)充用法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)計進(jìn)去,但是別的命令不一定會把換行符算進(jìn)去,。

常見參數(shù):

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

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

常見參數(shù):

排列前:

排列后:

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

命令行查看一個表格結(jié)構(gòu)時,因為制表符對齊的原因,出現(xiàn)一個錯位的現(xiàn)象。還有 字典排序 可能和我們平時的認(rè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ǔ)上,將空格替換成制表符

補(bǔ)充小知識 :

清屏 :control L

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

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

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'態(tài)團(tuán)| wc -l

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

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

利用Linux命令行進(jìn)行文本按行去重并按重復(fù)次數(shù)排序

利用linux命令行進(jìn)行文本按行去重并按重復(fù)次數(shù)排序linux命令行提供了非常強(qiáng)大的文本處理功能,組合利用linux命令能實現(xiàn)好多強(qiáng)大的功搏李能。本文這里舉例說明如何利用linux命令行進(jìn)行文本按行去重并按重復(fù)次數(shù)排序。主要用到的命令有sort,uniq和cut。其中,sort主要功能是排序,uniq主要功能是實現(xiàn)相鄰文本行的去重,cut可以從文本行中提取相應(yīng)的文本列(簡單地說,就是按列操作文本行)。用于演示的測試文件內(nèi)容如下:[plain]Hello

World.

Apple

and

Nokia.

Hello

World.

I

wanna

buy

an

Apple

device.

The

Iphone

of

Apple

company.

Hello

World.

The

Iphone

of

Apple

company.

My

name

is

Friendfish.

Hello

World.

Apple

and

Nokia.

實現(xiàn)命令及過程如下:[plain]1、文本行去重

(1)排序

由于uniq命令只能對相鄰行進(jìn)行去重復(fù)操作,所以在進(jìn)行去重前,先要對文本行進(jìn)行排序,使重復(fù)行集中到一起。

$

sort

test.txt

Apple

and

Nokia.

Apple

and

Nokia.

Hello

World.

Hello

World.

Hello

World.

Hello

World.

I

wanna

buy

an

Apple

device.

My

name

is

Friendfish.

The

Iphone

of

Apple

company.

The

Iphone

of

Apple

company.

(2)去掉相鄰的重復(fù)行

$

sort

test.txt

|

uniq

Apple

and

Nokia.

Hello

World.

I

wanna

buy

an

Apple

device.

My

name

is

Friendfish.

The

Iphone

of

Apple

company.

2、文本行去重并按重復(fù)次數(shù)排序

(1)首先,對文本行進(jìn)行去重并統(tǒng)計重復(fù)次數(shù)(uniq命令加-c選項可以實現(xiàn)對重復(fù)次數(shù)進(jìn)行統(tǒng)計。)。

$

sort

test.txt

|

uniq

-c

2

Apple

and

Nokia.

4

Hello

World.

1

I

wanna

buy

an

Apple

device.

1

My

name

is

Friendfish.

2

The

Iphone

of

Apple

company.

(2)對文本行按重復(fù)次數(shù)進(jìn)行排序。

sort

-n可以識別每行開頭的數(shù)字,并按其大小對文本行進(jìn)行排序。默認(rèn)是按升序排列,如果想要按降序要加-r選項(sort

-rn)。

$

sort

test.txt

|

uniq

-c

|

sort

-rn

4

Hello

World.

2

The

Iphone

of

Apple

company.

2

Apple

and

Nokia.

1

My

name

is

Friendfish.

1

I

wanna

buy

an

Apple

device.

(3)每行前面的刪除重復(fù)次數(shù)。

cut命令可以按列操作文本行??梢钥闯銮懊娴闹貜?fù)次數(shù)占8個字符,因此,可以用命令cut

-c

9-

取出每行第9個及其以后的字符。

$

sort

test.txt

|

uniq

-c

|

sort

-rn

|

cut

-c

9-

Hello

World.

The

Iphone

of

Apple

company.

Apple

and

Nokia.

My

name

is

Friendfish.

I

wanna

buy

an

Apple

device.

下面附帶說一下cut命令的使用,用法如下:[plain]cut

-b

list

[-n]

[file

...]

cut

-c

list

[file

...]

cut

-f

list

[-d

delim][-s][file

...]

上面的-b、-c、-f分別表示字節(jié)、字符、字段(即byte、character、field);

list表示-b、-c、-f操作范圍,-n常常表示具體數(shù)字;

file表示的自然是要操作的文本粗旅文件的名稱;

delim(英文巖銀凳全寫:delimiter)表示分隔符,默認(rèn)情況下為TAB;

-s表示不包括那些不含分隔符的行(這樣有利于去掉注釋和標(biāo)題)

三種方式中,表示從指定的范圍中提取字節(jié)(-b)、或字符(-c)、或字段(-f)。

范圍的表示方法:

n

只有第n項

n-

從第n項一直到行尾

n-m

從第n項到第m項(包括m)

-m

從一行的開始到第m項(包括m)

-

從一行的開始到結(jié)束的所有項

在寫這篇文章的時候,用到了vim的大小寫轉(zhuǎn)化的快捷鍵:gu變小寫,gU變大寫。結(jié)合ctrl+v能夠?qū)⒁黄淖种械淖址M(jìn)行大小寫轉(zhuǎn)換,非常好用。

【shell】Linux刪除文本重復(fù)行

通常如果我們想獲取一個文件里不重復(fù)的行的時候,我們可以直接通過?sort?-u?命令,先把文件排序,然后去掉連續(xù)的重復(fù)行就行。

可是,如果我們?nèi)サ糁貜?fù)行之后,還想保咐散留文件原有的順序,該怎么辦呢?

雖然 Linux 下有個看上去似乎很有用的命令叫uniq,但事實上?uniq?命令僅僅只對連續(xù)的重復(fù)行有效。

如果不排序,直接使用 uniq 命令是沒有用的;使用?sort?-u?的話,我們就丟失了文件原有的行的順序了。

一個終極的解決方案是使用 awk:

簡要解釋一下:awk 的基本執(zhí)行流程是,對文件的每一行,做一個指定的邏輯判斷,如果邏輯判斷成立,則執(zhí)行指定的命令;如果邏輯判斷不成立,則直接跳過這一行。

我們這里寫的 awk 命令是!x[$0]++,意思是,首先創(chuàng)建一個 map 叫x,然后用當(dāng)前行的全文$0作為 map 的 key,到 map 中查找相應(yīng)的 value,如果沒找到,則整個表達(dá)式的值為真,可以執(zhí)行之后的語句;如果找到了,則表達(dá)式的值為假,跳過這一行。

由于表達(dá)式之后有++,因此如果某個 key 找不到對應(yīng)的 value,該++操作會先把對應(yīng)的 value 設(shè)成 0,然后再自增成 1,這樣下次再遇到重復(fù)的行的時候,對應(yīng)的 key 就能找到一個非 0 的 value 了。

我們前面說過,awk 的流程是先判斷表達(dá)式,表達(dá)式為真的時候就執(zhí)行語句,可是我們前面寫的這個 awk 命令里只有表達(dá)式,沒有語句,那我們執(zhí)行什么呢?原來,當(dāng)語句被省略的時候,awk 就執(zhí)行默認(rèn)李友的語句哪簡槐,即打印整個完整的當(dāng)前行。就這樣,我們通過這個非常簡短的 awk 命令實現(xiàn)了去除重復(fù)行并保留原有文件順序的功能。


分享文章:linux命令去重 linux 去重復(fù)
文章出自:http://weahome.cn/article/ddpccsh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部