700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Linux进阶 vim grep sed awk 正则表达式

Linux进阶 vim grep sed awk 正则表达式

时间:2023-06-16 08:25:06

相关推荐

Linux进阶 vim grep sed awk 正则表达式

01 Linux上的文本编辑器vim

vim 编辑器是什么

vim 编辑器的三种模式

注意大小写!!!

打开文件时文件可以存在或者不存在,不存在时当关闭的时候系统会创建

命令模式

• 用vim FILENAME进入之后的默认模式

• 可以“上下左右”移动光标:方向键/hjkl

• 可以剪切字符或整行、也可复制、粘贴

移动光标:

• 方向键或者hjkl

• ^和$:快速到所在行的开头和末尾(用0也可以到开头)

• 30j:向下移动30行(数字+方向进行快速移动)

• ctrl+f或b:上下翻页(forward/back)

• gg:快速回到文档的第一行的第一个字符

• G:快速到文件底部

剪切、复制与粘贴:

• x:剪切一个字符

• 10x:连续剪切10个字符(numberx)

• dd:剪切所在行

• 10dd:剪切所在行及向下共10行

• yy:复制光标所在行

• 10yy:复制所在行及下面10行

• p或P:在当前行下面/上面进行粘贴

撤销动作(后悔药)

• u:复原前一个动作(可连续撤销)

• ctrl+r:重做上一个动作

编辑模式

• 输入i后进入编辑模式(左下角有-- INSERT --提示)• 其实有多种进入的模式(i/a/o/I/A/O),但是记住一种即可

• 按esc键退出该模式

• 在编辑模式下即可正常的编辑、修改文本内容

末行模式

• 在命令模式下输入一个:进入这一模式

• 注意需要是英文的冒号,中文的冒号(全角)输入不进来

• 按esc键退出该模式

• 在该模式下可以设置、查询、替换、保存并退出

保存与退出

• :wq 保存并退出

• :q 直接退出

• :q! 不保存修改,强制退出

• :wq! 保存并强制退出

set系列命令

• :set nu 显示行号

• :set nonu 取消行号

• :set list 显示不可见字符(分辨制表符与空格)

• :set nolist 不显示不可见字符(分辨制表符与空格)

• :set ff=unix 将文件格式转换为unix格式 (如果格式很奇怪可以用这个代码)

查询

• 输入/KEYWORD进行查询

• 按n向下查找

• 按N向上查找

替换

• :%s///g 全局替换 /替换/被替换对象/

• :s///g 替换光标所在行

• :s/// 只替换光标所在行的第一次

vim键盘图

Vim 编辑器:vimtutor zh_CN 可以查看帮助文档

练习

1.用vim打开readme.txt文件,在第一行Biotrainee()的括号内填入自己的用户名(提示:用i切换模式)vim readme.txt按i June162.把第二行剪切掉,要求在命令模式下完成(提示:按Esc键退出模式)按 ESC dd3.将第二行的内容粘贴到最后一行的后面p4.设置vim使其显示行号:set nu5.截图发在群里6.不保存,直接退出(提示:用:q!):q!

02 生物信息学常见数据格式

fasta

fasta 是一种基于文本用于表示核酸序列或多肽序列的格式。其中核酸或氨基酸均以单个字母来表示,且允许在序列前添加序列名及注释

特征: 2部分, id行和序列行.

id行以“>”开头, 有时候会包含注释信息

序列行一个字母表示一个碱基/氨基酸,

A、T、C、G、N(不确定是哪个碱基)

20种常见氨基酸

直到下一个id行为止

fastq

fastq 是一种存储了生物序列以及相应的质量评价的文本格式。

特征: 4行

FASTQ files explained

gff/gtf

gff(General Feature Format)

记录序列中转录起始位点、基因、外显子、内含子等组成元件在染色体中的位置信息

1) seqid :序列的id。(The name of the sequence where the feature is located.)

2)source:注释的来源,一般指明产生此gff3文件的软件或方法(e.g. Augustus or RepeatMasker)。如果未知,则用点(.)代替。

3)type:类型,描述这一行记录的内容(例如gene,mRNA,exon,UTR等)

4)start:起始位置,从1开始计数(区别于bed文件从0开始计数)。

5)end:终止位置。

6)score:得分,注释信息可能性说明,可以是序列相似性比对时的E-values值或者基因预测时的P-values值。”.”表示为空。

7)strand:“+”表示正链,“-”表示负链,“.”表示不需要指定正负链,“?” 表示未知.

8)phase :步进。仅对编码蛋白质的CDS(coding sequence)有效,本列指定下一个密码子开始的位置。可以是0、1或2,表示到达下一个密码子需要跳过碱基个数。

9)attributes:属性。一个包含众多属性的列表,格式为“标签=值”(tag=value),不同属性之间以分号相隔。

gtf (Gene transfer format)

1) seqname:序列的名字。通常格式染色体ID或是contig ID。

2) source:注释的来源。通常是预测软件名或是公共数据库。

3) feature :基因结构。根据所使用软件不同,feature types必须注明。CDS,start_codon,stop_codon是一定要含有的类型。

4) start:起始位置,从1开始计数。

5) end:终止位置。

6) score :这一列的值表示对该类型存在性和其坐标的可信度,不是必须的,可以用点“.”代替。

7) strand:链的正向与负向,分别用加号+和减号-表示。

8) frame:密码子偏移,可以是0、1或2。

9) attributes:必须要有以下两个值:

gene_id value: 表示转录本在基因组上的基因座的唯一的ID。gene_id与value值用空格分开,如果值为空,则表示没有对应的基因。

transcript_id value: 预测的转录本的唯一ID。transcript_id与value值用空格分开,空表示没有转录本。

03 文本处理三驾马车

grep

一种强大的文本搜索工具,它能使用正则表达式匹配模式搜索文本,并把匹配的行打印出来

格式:grep [options] pattern file

常见参数:

-w:word 精确查找某个关键词 pattern

-c:统计匹配成功的行的数量

-v:反向选择,即输出没有没有匹配的行

-n:显示匹配成功的行所在的行号

-r:从目录中查找pattern

-e:指定多个匹配模式

-f:从指定文件中读取要匹配的 pattern

-i:忽略大小写

grep的结果一般高亮,但如果其后又传递给其他参数,则可能不高亮

-r, -n

-w

只要单独的gene -w

-w -v

-c

-e

-f

结合正则表达式

^ $ .

\?(正则里的问号) \+ *

{n} {n,} {m,n}

[ ] [^] |

注意事项:

转译正则 -E 或者是\

练习

##1.匹配example.gtf文件中包含 exon 的行,然后反向输出(即过滤掉含有exon关键词的行)cat Data/example.gtf | grep -v "exon" cat Data/example.gtf | grep -v 'exon' |less#最好用单引号防止出错##2.匹配example.gtf文件中包含 CDS 或者 UTR 的行cat Data/example.gtf | grep -w -e "CDS" -e 'UTR' ##筛选词的时候记得加上 -wcat Data/example.gtf | grep -w -e 'CDS' -e 'UTR' |less -SN#3.查找example.fq文件包含 @ 的行并统计cat Data/example.fq | grep -c "@"#4.查找example.fq文件以 @ 开头的行并统计cat Data/example.fq | grep -c "^@"cat Data/example.fq | grep '^@'|grep -v -n '^@ERR'

混进了6个

1.人类Y染色体上有多少个基因呢?2.在Y染色体的注释文件中有第三列哪些类型呢?提示:Homo_sapiens.GRCh38.102.chromosome.Y.gff3.gz文件就是人类的Y染色体的gff文件

sed:流编辑器,一般用来对文本进行增删改查

用法:sed [-options] 'script' file(s)

常见参数:

-n :取消默认输出,只显示经过sed处理或匹配的行(常用)

-e :直接在命令模式上进行 sed 的动作编辑,接要执行的一个或者多个命令

-i :直接修改读取的文件内容,不输出。【仅有这个会直接修改原始数据!!!】

-n

adress:

command:

a

i

写的行数是指原来数据里的行数

d

-e

y

思考:

先插入再删除

s

练习2

1.使用head查看 example.gtf 文件head Data/example.gtf2.将1结果传递给 sed,并将 HAVANA 替换为 ENSEMBLhead Data/example.gtf | sed 's/HAVANA/ENSEMBL/' | less -SN3.使用head查看 example.fa 文件,结果传递给 sed,取第2行至末尾的互补序列,并保存到新文件中head Data/example.fa | sed '2,$y/ATCG/TAGC/'head Data/example.fa | sed '2,$y/ATCG/TAGC/' > tmp1.fa ##保留到新文件夹4.搜索一下,sed 如何做大小写转换大写转小写: sed 's/[A-Z]/\l&/g'小写转大写: sed 's/[a-z]/\u&/g'

awk

也称gawk,编程语言,可对文本和数据进行处理

常见参数:

-F,fields,设置字段分隔符(默认是空白字符);

空格、Tab

-v,var=value 定义awk程序中的一个变量及其默认值

用法:awk [options] '{script}' file

基础结构: ' {script} '

匹配结构: ' /pattern/{script} '

扩展结构: 'BEGIN{script} {script} END{script}'

数据字段

内置变量

基础结构

匹配结构

扩展结构 做主体之前先做begin 里的→主体→end里的

条件和循环语句

条件

循环

数学运算

+ (加),- (减), * (乘),^ (幂) / (除),** (平方), % (取余)

int(x) x的整数部分,取靠近零一侧的值 (默认没有四舍五入)

log(x) x的自然对数

+0.5再取整 即可四舍五入

练习

1.任意挑4句前面的命令自己动手敲一遍2.使用head查看example.gtf文件3.将2的结果传递给awk,输出含有ENSEMBL的行head Data/example.gtf | awk '/ENSEMBL/{print $0}'| less -s4.结合所学,输出以下结果head example.gtf|cut -f 9 | awk '{ print $2 $4 $6}'| tr ";" " " |sed 's/"/ /g' | less -SNhead example.gtf|awk '{print $10 $12 $14}'|sed "s/;//g"|sed 's/"/ /g'| less -SNhead Data/example.gtf | cut -f 9 | awk '/file/{print $0}'| less -s ##这个file是啥?

正则表达式

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。