生物信息学基础教程4讲正则表达式教程.ppt

上传人:小飞机 文档编号:6369063 上传时间:2023-10-21 格式:PPT 页数:38 大小:288.82KB
返回 下载 相关 举报
生物信息学基础教程4讲正则表达式教程.ppt_第1页
第1页 / 共38页
生物信息学基础教程4讲正则表达式教程.ppt_第2页
第2页 / 共38页
生物信息学基础教程4讲正则表达式教程.ppt_第3页
第3页 / 共38页
生物信息学基础教程4讲正则表达式教程.ppt_第4页
第4页 / 共38页
生物信息学基础教程4讲正则表达式教程.ppt_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《生物信息学基础教程4讲正则表达式教程.ppt》由会员分享,可在线阅读,更多相关《生物信息学基础教程4讲正则表达式教程.ppt(38页珍藏版)》请在三一办公上搜索。

1、生物信息学基础教程第4讲:正则表达式教程,正则表达式与模式匹配,本节内容,正则表达式正则表达式的定义与表示方法正则表达式中的元字符(metacharacter)VIM编辑器grep命令sed编辑器awk工具,正则表达式,所谓正则表达式(regular expression,RE),指的是符合某种模式的字串,常用于从文件中或者字符串中查找和替换某些符合某种规则的字串,VIM教程,linux下最常用的文本编辑器,VIM编辑器,三种模式:各种模式之间切换从命令行模式到插入模式:按下i键从命令行模式到附加模式:按下a键返回命令行模式:按下ESC键退出编辑保存并退出:在命令行模式按下:wq不保存退出:在

2、命令行模式按下:q!保存:在命令行模式按下:w另存为其他文件名:按下:w filename,VIM编辑功能,光标跳到文件头:命令行模式下按2下g光标跳到文件尾:按下:$光标跳到行首:按下光标跳到行末:按下$跳到100行:按下100g,VIM查找功能,底行模式下输入/pattern/回车,对应符合pattern的文本就会显示为高亮底行模式下输入:m,n/pattern/,就会在第m行到第n行查找pattern并高亮显示,grep教程,正则表达式的应用,grep简介,是Global search regular expression(RE)and Print out the line的缩写强大的文

3、本搜索工具,使用正则表达式搜索文本,并打印匹配的行在一个或者多个文件中搜索字符串模式,搜索的结果输出到屏幕,不影响文件内容,grep用法,grep option pattern input_files,常用grep命令选项,grep正则表达式元字符,练习题:这些命令都能干啥?,ls l|grep agrep test d*grep test aa bb ccgrep a-z5 aagrep w(es)t.*1 aagrep n datafilegrep 4$datafilegrep 5.datafilegrep.5 datafilegrep wesn datafilegrep A-ZA-Z A

4、-Z datafilegrep ss*datafilegrep a-z9 datafilegrep datafile,sed教程,非交互性文本编辑,sed简介,首先用which sed查看一下sed的位置一个非交互性文本编辑器,编辑文件或标准输入导出的文件拷贝sed可以随意编辑小文件或者大文件一次性处理所有改变,高效率通过行号和正则表达式指定需要编辑的行,sed用法,从文件的一个文本行或标准输入中读取数据,并将其拷贝到一个编辑缓冲区读取命令行或者脚本的第一条命令,并用该命令查找模式或定位行号并编辑,重复过程直到命令结束sed option sed_command input_filesed o

5、ption f sed_script_file input_filesed_script_file option input_file,sed命令的选项,sed定位行号的方法,基本sed编辑命令,练习题:这些命令能干什么?,AWK教程,文件模式提取教程,AWK简介,Linux下的awk有三个版本:awk、nawk、gawk,一般所说的awk是指/bin/awk,也就是gawk(GNU awk)awk的功能:基于指定规则从文件或者字符串中分解抽提信息基于指定的规则输出数据,awk的三种执行方式,awk option awk_script input_file1 input_file2 将awk_

6、script放入脚本文件并以#!/bin/awk f 作为首行,并赋予该脚本可执行权限,然后在shell下调用该脚本名称执行awk_script的内容:awk_file input_file将所有awk_script放入一个单独的脚本文件,然后用awk f awk_file input_file(s)执行脚本,awk脚本的组成,可由一条或多条awk_cmd组成,两条awk_cmd之间一般以NEWLINE分割awk_cmd由两部分组成:awk_pattern actions awk命令的一般形式awk BEGIN actions awk_pattern1 actions awk_patternN

7、 actions END actions input_file其中BEGIN 和END模块是可选的,awk脚本的运行机制,如果存在BEGIN区块,执行其中的actions从输入文件中读取一行,称为读入一条记录将读入的记录按照分隔符(FS/IFS)分割为多个字段,依次为$1,$2,.,而$0表示整条记录。将当前输入记录与awk_pattern相比较,如果匹配则执行actions,如果不匹配则跳过读入下一条记录,重复执行3,4,直到文件尾awk把输入文件的数据读入内存,然后操作内存中的输入数据副本,不会修改输入文件的内容awk总是输出到标准输出,如果需要输出到文件,可采用重定向,awk_patte

8、rn的格式,正则表达式/regexp/通用的正则元字符:$.|()*+是awk特有的元字符,匹配其前的单个字符一次以上?也是awk特有的元字符,匹配其前的单字符0/1次举例:awk/*$0.0-90-9.*/input_file布尔表达式“=”,“”,“/regexp/”,“&”,“|”举例awk$3/d/input_fileawk($1 10)print ok input_file,actions的格式,actions是对awk读取记录进行的操作actions由一条或多条语句或命令组成,语句之间用分号分隔,awk命令,print“$1=”,$1printf:与c语言的printf类似next

9、:读取下一条记录并处理nextfile:读取文件列表的下一个文件exit:awk停止执行并跳出。如果有END存在,awk会执行END的actions,awk语句,赋值语句awk BEGIN x=1;y=3;x=y;print x=x;y=y awk BEGIN x=3;x+=2;y=x+2;print x=x;y=y 流程控制结构 if(condition)then-body else else-body while(condition)body do body while(condition)for(initialization;condition;increment)body 与C语言的f

10、or结构的语法相同 break:跳出包含它的for、while、do-while 循环 continue:跳过for、while、do-while循环的body的剩余部分,而立刻进行下一次循环的执行,awk内部变量,自动内部变量NF:当前输入字段的字段数NR:当前输入文件已经被读过的行数FNR:所有输入文件中已经被读过的行数FILENAME:当前输入文件的文件名ARGC:命令行参数个数,输入文件数目+1ARGIND:当前处理文件在ARGV内的索引字段变量:$1,$2,$NF,$0其他内部变量FS:输入记录的字段分隔符(默认是空格和制表符)OFS:输出记录的字段分隔符(默认是空格)OFMT:数字

11、的输出格式(默认是%.6g)RS:输入记录间的分隔符(默认是NEWLINE)ORS:输出记录间的分隔符(默认是NEWLINE)ARGV:命令行参数数组 ENVIRON:存储系统当前环境变量值的数组,它的每个成员的索引就是一个环境变量名举例:cat/etc/passwd|awk BEGIN FS=:print User name:$1,UID:$4,awk自定义变量,定义变量:varname=value表达式中不带引号的字符串即被视为变量,如果之前未被赋值,默认值为0或“”用法:awk awk_script awkvar1=value1 awkvar2=value2.input_file 优先级

12、:awk_script中的变量定义优先于命令行中的变量定义如果需要调用shell变量,可以采用awk awk_script awkvar1=shellvar1 awkvar2=shellvar2.input_file,awk内置函数,数值函数:int(x),sqrt(x),exp(x),log(x),sin(x),cos(x),atan2(y,x),rand(),srand(x),srand()字符串函数:index(in,find),length(s),match(s,r),sprintf(),sub(p,r,t),gsub(p,r,t),substr(str,st,len),split(s

13、,a,fs),tolower(str),toupper(str)系统函数:close(filename),system(command),awk自定义函数,自定义函数格式:function fun_name(param_list)function_body 举例:awk print“sum=”,SquareSum($1,$2)function SquareSum(x,y)sum=x*x+y*y;return sum grade.txt,awk数组,访问数组元素for(element in array_name)print array_nameelement 举例:awk BEGINprint

14、split(“123#456#789”,mya,“#”);for(i in mya)print myai,避免awk错误的方法,确保整个awk_script用单引号括起来 确保awk_script内所有引号成对出现 确保用花括号括起动作语句,用圆括号括起条件语句 可能忘记使用花括号,也许你认为没有必要,但awk不这样认为,将按之解释语法 如果使用字符串,一定要保证字符串被双引号括起来(在模式中除外),2)在awk中,设置有意义的变量名是一种好习惯,在进行模式匹配或关系操作时更容易理解。一般的变量名设置方式为name=$n3)通常在BEGIN部分给一些变量赋值是很有益的,这样可以在awk表达式进

15、行改动时减少很多麻烦4)awk的基本功能是根据指定规则抽取输入数据的部分内容并输出,另一个重要的功能是对输入数据进行分析运算得到新的数据并输出,这是通过在 awk_script中对字段变量($1、$2、$3.)重新赋值或使用更大的字段变量$n(n大于当前记录的NF)而实现的5)使用字符串或正则表达式时,有时需要在输出中加入一新行或查询一元字符。这时就需要字符串屏蔽序列。awk中经常使用的屏蔽序列有:b 退格键 t tab键 f 走纸换页 ddd 八进制值 n 新行 r 回车键 c 任意其他特殊字符。eg:为反斜线符号,awk的输出函数printf,格式:printf(输出模板字符串,参数列表)

16、参数列表是以逗号分隔的列表,参数可以是变量、数值或字符串。输出模板字符串的字符串中必须包含格式控制符,有几个参数就要求有几个格式控制符。模板字符串中可以只有格式控制符而没有其它字符。格式控制符:%-width.precfmt%:标识一个格式控制符的开始,不可省略。-:表示参数输出时左对齐,可省略。width:一个数字,表示参数输出时占用域的宽度,可省略。.prec:prec是一个数值,表示最大字符串长度或小数点右边的位数,可省略。fmt:一个小写字母,表示输出参数的数据类型,不可省略。常见的fmt:c ASCII字符,d 整数,e 科学记数法浮点数,f 浮点数,如 123.44 g 由awk决

17、定使用哪种浮点数转换e或f,o 八进制数,s 字符串,x 十六进制数 举例:echo 65|awk printf(%cn,$0)/将打印 A awk BEGINprintf%.4fn,999/将打印 999.0000awk BEGINprintf 2 number:%8.4f%8.2f,999,888/将打印 2/number:999.0000 888.000,总结,sed适合处理整行的文本awk适合处理下面格式的文件col1col2col3col4 更复杂的文本可通过结合sed和awk进行处理,或者通过其他更高级的脚本语言如perl/python进行处理记住:C/C+不适合用来处理文本或字符串,所以,掌握1-2种脚本语言对于生物信息学来说,是非常有必要的,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号