linux基本操作

sed常见操作

#查看文件指定行数内容

sed -n '100,110p' filename

#删除文件指定行内容

sed '1,2d' filename

#在文件指定行增加字符串

sed '1a drink tea' filename #第一行后增加字符串"drink tea"

#替换文件指定行内容

sed '1c Hi' filename

#替换指定内容

sed -n '/ruby/p' filename | sed 's/ruby/bird/g' #替换ruby为bird

awk常见操作

cut常见操作

cut命令用来显示行中的指定部分。

-b 表示字节;

-d 指定字段的分隔符;

-c 表示字符;

-f 表示定义字段。

实战

提取基因注释信息

zcat Homo_sapiens.GRCh38.94.gtf.gz | awk 'BEGIN{FS="\t"}{split($9,a,";"); if($3~"gene") print a[1]"\t"a[3]"\t"$1":"$4"-"$5"\t"a[5]"\t"$7}' | sed 's/gene_id "//' | sed 's/gene_id "//' | sed 's/gene_biotype "//'| sed 's/gene_name "//' | sed 's/gene_biotype "//' | sed 's/"//g' | sed 's/ //g' | sed '1igene_id\tGeneSymbol\tChromosome\tClass\tStrand' > gene_annotation_table.txt

参考资料

[01]. linux中sed的用法

[02]. AWK 简明教程

[03]. Question: extract only geneID and gene symbol from GTF file