中文字幕亚洲第一精品|精品国产免费一区二区|久久婷婷五月六月综合版|中文字幕熟妇久久久人妻|久久综合精品国产一区无码|国产成人精品永久免费视频|午夜亚洲国产精品理论片a级|久久精品一区二区三区无码护土

 訪問手機(jī)版  

Linux常用命令|Linux培訓(xùn)學(xué)習(xí)|考試認(rèn)證|工資待遇與招聘,認(rèn)準(zhǔn)超級網(wǎng)工!

招聘|合作 登陸|注冊

網(wǎng)絡(luò)工程師培訓(xùn)

當(dāng)前位置:網(wǎng)絡(luò)工程師 > 技術(shù)課程 > linux > 熱點(diǎn)關(guān)注 > linux常用命令

Linux學(xué)習(xí) - 常用和不太常用的實(shí)用awk命令

時間:2019-08-04

linux常用命令_常用linux命令大全_linux壓縮命令zip命令

歡迎關(guān)注生信寶典:

Linux學(xué)習(xí)系列文章是生信寶典最開始主推的一塊,力圖從一個新額視角幫助初學(xué)者快速入門Linux系統(tǒng),熟悉Linux下的文件和目錄,文件操作, 文件內(nèi)容操作。而且教程摒棄了完美操作,列舉出,解惑Linux下多種信息輸出方式。

在中簡述了awk和sed的使用,作為一個引子。本篇則詳細(xì)列舉關(guān)于awk常用的操作和一些偏門的操作。

awk擅長于對文件按行操作,每次讀取一行,然后進(jìn)行相應(yīng)的操作。

awk讀取單個文件時的基本語法格式是awk 'BEGIN{OFS=FS="\t"}{print $0, $1;}' filename。

讀取多個文件時的語法是awk 'BEGIN{OFS=FS="\t"}ARGIND==1{print $0, $1;}ARGIND==2{}' file1 file2。

linux常用命令_常用linux命令大全_linux壓縮命令zip命令

awk后面的命令部分是用引號括起來的,可以單引號linux常用命令,可以雙引號,但注意不能與內(nèi)部命令中用到的引號相同,否則會導(dǎo)致最相鄰的引號視為一組,引發(fā)解釋錯誤。

OFS: 文件輸出時的列分隔符 (output field separtor)

FS: 文件輸入時的列分隔符 (field separtor)

BEGIN: 設(shè)置初始參數(shù),初始化變量

END: 讀完文件后做最終的處理

其它{}:循環(huán)讀取文件的每一行

linux常用命令_常用linux命令大全_linux壓縮命令zip命令

$0表示一行內(nèi)容;$1, $2, … $NF表示第一列,第二列到最后一列。

column屬性(當(dāng)前字符位置的列號)和line屬性(文件當(dāng)前行號):在打開一個文件后,行和列指針都被設(shè)置為1。當(dāng)前讀:特殊的讀操作,插入/更新/刪除操作,屬于當(dāng)前讀,需要加鎖。低級文件i/omatlab低級文件i/o函數(shù)fclose 關(guān)閉文件feof 測試文件結(jié)束ferror 查詢文件i/o的錯誤狀態(tài)fgetl 讀文件的行l(wèi)inux常用命令,忽略回行符fgets 讀文件的行,包括回行符fopen 打開文件fprintf 把格式化數(shù)據(jù)寫到文件或屏幕上fread 從文件中讀二進(jìn)制數(shù)據(jù)frewind 返回到文件開始fscanf 從文件中讀格式化數(shù)據(jù)fseek 設(shè)置文件位置指示符ftell 獲取文件位置指示符fwrite 把二進(jìn)制數(shù)據(jù)寫到文件里技術(shù)凝聚實(shí)力專業(yè)創(chuàng)新出版技術(shù)凝聚實(shí)力專業(yè)創(chuàng)新出版18.3.1 fopen函數(shù)? fopen函數(shù)打開一個文件并返回這個文件的文件句柄值。

a[$1]=1: 索引操作,類似于python中的字典,在ID map,統(tǒng)計中有很多應(yīng)用。

ct@ehbio:~/sxbd$ cat ehbio.wig
variableStep chrom=chr2
300701  12.5
300702  12.5
300703  12.5
300704  12.5
300705  12.5
ct@ehbio:~/sxbd$ awk 'BEGIN{OFS=FS="\t"}{$2=$2*10^6/(2.5*10^6); print $0}' wig 
tep chrom=chr2  0
300701  4.4
300702  4.8
300703  4
300704  4.8
300705  4.8
ct@ehbio:~/sxbd$ cat count 
ID  Type
Pou5f1  Pluripotency
Nanog   Pluripotency
Sox2    Neuron
Tet1    Epigenetic
Tet3    Epigenetic
Myc Oncogene
ct@ehbio:~/sxbd$ awk 'BEGIN{OFS=FS="\t"}{if(FNR>1) a[$2]+=1;}END{print "Type\tCount"; for(i in a) print i,a[i];}' count
Type    Count
Neuron  1
Epigenetic  2
Oncogene    1
Pluripotency    2
# 這個也可以用下面方式代替,但不直接
ct@ehbio:~/sxbd$ tail -n +2 count | cut -f 2 | sort | uniq -c | sed -e 's/^  *//' -e 's/  */\t/' 
2   Epigenetic
1   Neuron
1   Oncogene
2   Pluripotency