2019-11-29【生信技能樹】P9 Linux-10-文本處理 學(xué)習(xí)記錄

【生信技能樹】生信人應(yīng)該這樣學(xué)Linux
P9 linux-10-文本處理

Linux文本處理命令awk,grep,sed,paste,cat,diff,wcvim

文章:Identifying and Targeting Sporadic Oncogenic Genetic Aberrations in Mouse Models of Triple-Negative Breast Cancer.
PMID:29203461

ProjectID

微信搜索,關(guān)鍵詞“SRA數(shù)據(jù)庫(kù)的規(guī)律”,【生信技能樹】公眾號(hào)
【生信技能樹】解讀SRA數(shù)據(jù)庫(kù)規(guī)律一文就夠

網(wǎng)頁(yè)點(diǎn)擊下載RunInfo TableAccession List
R包SRAdb可以在R里完成同樣的工作

head/tail/less/more 4個(gè)命令都可以查看文件內(nèi)容
head #從頭查看文件內(nèi)容,默認(rèn)顯示最前面10行
tail #從文件末尾查看文件內(nèi)容,默認(rèn)顯示最后10行
less #查看文件內(nèi)容

  • 默認(rèn)按照屏幕寬度顯示文件,有可能文件一行內(nèi)容在屏幕上顯示多行,視覺感官會(huì)比較凌亂。
  • 參數(shù)-S使文件一行內(nèi)容在屏幕上也顯示為一行,可用方向鍵查看超出屏幕范圍的內(nèi)容,-S使文件內(nèi)容顯示較為整齊。
  • 參數(shù)-N顯示行號(hào)
  • 想在文件中查找內(nèi)容,/+想查找的內(nèi)容

more # 查看文件內(nèi)容

grep

cut # 按列查看文件
-參數(shù)-f,按列查看文件,后接想查看的列號(hào)
-參數(shù)-d,按特定符號(hào)分割文件

sed
awk

課程中命令記錄

-----grep-----

$head SRR_Acc_List.txt > id
$mv SraRunTable.txt info
$mv SRR_Acc_List.txt allid
$grep SRR5933808 info
$grep -f id info # 參數(shù)-f,在文件info中查找文件id的內(nèi)容
$grep -f id info |wc
$grep SR59338 id
$grep SR59338 id |wc
$grep -w SR59338 id
$wc id
$grep -c SR59338 id # 等同于grep SR59338 id |wc
$less /data/reference/gtf/hg19.gtf
$head /data/reference/gtf/hg19.gtf > tmp
$less tmp
$grep '^#' tmp # 正則表達(dá)式,匹配“以#開頭”的內(nèi)容
$grep -v '^#' tmp # 反向匹配,匹配“不以#開頭”的內(nèi)容
$which grep 
/bin/grep
$type grep
grep is aliased to 'grep --color=auto'
$alias del=rm #設(shè)置別名,使del可以執(zhí)行rm命令功能,類似于“快捷方式”
$del tmp # 等同于執(zhí)行rm tmp
$which del #不存在
$which rm
bin/grep

-----cut,sed-----

$less -SN info
$head -1 info | tr '\t' '\n' |cat -n
$cut -f 1,14-16,31 info #顯示以下列[1]Assay_Type,[14]genotype,[15]mouse_number,[16]primary_tumor_index,[31]SRA_Study
$cut -f 14 info #顯示第14列,[14]genotype
$cut -f 14 info | cut -d";" -f 1
$cut -f 14 info | tr ';' '\t'
$cut -f 14 info | sed 's/;/\t/g' # sed輸入順序sed 's///g',然后再填入;和\t

$head /data/reference/gtf/hg19.gtf
$less -S /data/reference/gtf/hg19.gtf
$ln -s /data/reference/gtf/hg19.gtf gtf #當(dāng)前目錄下的gtf軟鏈接到/data/reference/gtf/hg19.gtf文件
$less gtf
$cut -f1 gtf #查看gtf文件的第1列
$cut -f1 gtf | sort -u #gtf文件第1列排序,并去掉重復(fù)值。u代表unique
$cut -f1 gtf | sort | uniq #效果等同于上一命令
$cut -f1 gtf | sort | uniq -c # gtf文件第1列排序,并統(tǒng)計(jì)出現(xiàn)次數(shù)
$cut -f1 gtf | sort | uniq -c | sort -k1,1 #按出現(xiàn)次數(shù)從小到大排序
$cut -f1 gtf | sort | uniq -c | sort -k1,1 -r#按出現(xiàn)次數(shù)從大到小排序
$cut -f1 gtf | sort | uniq -c | sort -k1,1 -r | head -20#按出現(xiàn)次數(shù)從大到小排序,顯示前20行
$cut -f1 gtf | sort | uniq -c | sort -k1,1 -r | head -20 > tmp
$cat tmp

-----awk,paste-----

$awk '{print $1}' tmp #先輸入awk '{}',再在花括號(hào)中輸入執(zhí)行語(yǔ)句
$awk '{print $2}' tmp
$awk '{print $1}' tmp | paste #報(bào)錯(cuò)
#paste用法,搜索關(guān)鍵詞:shell統(tǒng)計(jì)文本的數(shù)字和 paste
$awk '{print $1}' tmp | paste -s #將所有內(nèi)容輸出為一行
$awk '{print $1}' tmp | paste -s -d + #將所有內(nèi)容輸出為一行,并以+號(hào)相連
$awk '{print $1}' tmp | paste -s -d + | bc #計(jì)算總和
$echo 1+2|bc #計(jì)算1+2
$less -S gtf
$cut -f 3 gtf
$cut -f 3 gtf | sort | uniq -c
$grep gene gtf | wc #想grep的是第3列的gene,但是在文件其他位置也存在gene
$grep -w gene gtf | wc
$history | awk '{print $2}' | sort | uniq -c
$history | awk '{print $2}' | sort | uniq -c | awk '{print $1"\t"$2}'
$history | awk '{print $2}' | sort | uniq -c | awk '{print $1"\t"$2}' | sort -k 1,1
$history | awk '{print $2}' | sort | uniq -c | awk '{print $1"\t"$2}' | sort -k 1,1 -n
##$awk '{}'
##$awk '{if () print}'
$awk '{if($3=="gene") print}' gtf | wc #查看gtf文件第3列是"gene"的內(nèi)容,統(tǒng)計(jì)
$perl -alne '{print if $F[2] eq "gene"}' gtf | wc

$time awk '{if($3=="gene") print}' gtf | wc
$time perl -alne '{print if $F[2] eq "gene"}' gtf | wc
$time grep -w gene gtf | wc

gtf格式
第1列:染色體編號(hào)
第2列:屬性
第3列:屬性2
第4列:起始坐標(biāo)
第5列:終止坐標(biāo)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容