本文給大家分享一些實(shí)用的one-liners命令,如果覺(jué)得實(shí)用歡迎收藏與轉(zhuǎn)發(fā),。 基本的awk命令提取一個(gè)文本中第2,4,和5行,。 awk '{print $2,$4,$5}' input.txt 提取第五列中等于0的所有行: awk '$5 == '0'' file.txt 提取第五列中不等于0的所有行: awk '$5 ,!= '0'' file.txt 根據(jù)第二列的字符串來(lái)提取unique的文本內(nèi)容,即去重(只提取第一個(gè)unique字符串的那一行) awk '!arr[$2]++' file.txt 提取出第三列大于第五列的行數(shù): awk '$3>$5' file.txt 求第一列的和: awk '{sum+=$1} END {print sum}' file.txt 求第二列數(shù)值的平均值,, awk '{x+=$2}END{print x/NR}' file.txt 基本的sed命令把文件中所有的 sed 's/foo/bar/g' file.txt 去除文件中開(kāi)頭的空格或者tab字符: sed 's/^[ \t]*//' file.txt 去除文件中結(jié)尾的空格或者tab字符: sed 's/[ \t]*$//' file.txt 同時(shí)去除文件開(kāi)頭與結(jié)尾的空格或者tab字符: sed 's/^[ \t]*//;s/[ \t]*$//' file.txt 刪除文本中的空白行 sed '/^$/d' file.txt 刪除文件中行中包含abc的行及其這行以后的所有行: sed -n '/abc/,$!p' file.txt 生物信息中的awk和sed提取file.txt中 Chr1 中1MB和2MB的片段之間的行信息,,假設(shè)第一列是Chr信息,第三列是位置信息: cat file.txt | awk '$1=='1'' | awk '$3>=1000000' | awk '$3<> 統(tǒng)計(jì)fastq文件中基本的參數(shù),,包括總的reads數(shù)目,總的unique reads的數(shù)目(就是不重復(fù)的reads),,這些unique reads的比例,,最過(guò)剩的read的序列及其數(shù)目與占總的reads的比率: at myfile.fq | awk '((NR-2)%4==0){read=$1;total++;count[read]++}END{for(read in count){if(!max||count[read]>max) {max=count[read];maxRead=read};if(count[read]==1){unique++}};print total,unique,unique*100/total,maxRead,count[maxRead],count[maxRead]*100/total}' 將bam格式的文件轉(zhuǎn)化為fastq格式: samtools view file.bam | awk 'BEGIN {FS='\t'} {print '@' $1 '\n' $10 '\n+\n' $11}' > file.fq 將一個(gè)multi-FASTA 分成多個(gè)的單個(gè)FASTA文件: awk '/^>/{s=++d'.fa'} {print > s}' multi.fa 將fastq文件轉(zhuǎn)變成fa文件: sed -n '1~4s/^@/>/p;2~4p' file.fq > file.fa 輸出fasta文件中每一個(gè)序列的header名字與其的長(zhǎng)度 cat file.fa | awk '$0 ~ '>' {print c; c=0;printf substr($0,2,100) '\t'; } $0 !~ '>' {c+=length($0);} END { print c; }' 輸出制定的行數(shù): #例如20到80行 轉(zhuǎn)化 VCF file 成BED file: sed -e 's/chr//' file.vcf | awk '{OFS='\t'; if (!/^#/){print $1,$2-1,$2,$4'/'$5,'+'}}' 計(jì)算vcf 中 每一個(gè)line的missing樣本數(shù)目: bcftools query -f '[%GT\t]\n' a.bcf | awk '{miss=0};{for (x=1; x<>$x=='./.') {miss+=1}};{print miss}' > nmiss.count 根據(jù)reads的名字,提取fastq中的reads: zcat a.fastq.gz | awk 'BEGIN{RS='@';FS='\n'}; $1~/readsName/{print $2; exit}' 計(jì)算fastq文件中reads 長(zhǎng)度的平均值: awk 'NR%4==2{sum+=length($0)}END{print sum/(NR/4)}' input.fastq 本次主要講sed 和 awk 兩大神器,,下周會(huì)更新其他實(shí)用的one-liners command,,希望對(duì)大家有幫助,如果大家也有其他實(shí)用的one-liners command也歡迎大家在回復(fù)欄中分享你收藏的command,。 |
|