一种强大的文本搜索工具,它能使用正则表达式匹配模式搜索文本,并把匹配的行打印出来
格式:grep options pattern file
常见参数:
-w:word 精确查找某个关键词 pattern
-c:统计匹配成功的行的数量
-v:反向选择,即输出没有匹配的行
-n:显示匹配成功的行所在的行号
-r:从目录中查找pattern
-e:指定多个匹配模式
-f:从指定文件中读取要匹配的 pattern
-i:忽略大小写
cat Data/example.gtf | grep 'gene'
cat Data/example.gtf | grep -w 'gene'
cat Data/example.gtf | grep -w -c 'gene'
cat Data/example.gtf | grep -w -v 'gene'
grep 'TATATT' -r Data/ -n #在目录查找但是查不到压缩文件
cat > file
gene
UTR
start_codon
stop_codon
^C(Ctrl C)
less -S Data/example.gtf | grep -w -f 'gene' | less -S
是对字符串操作的一种逻辑公式,就是用事先 定义好的一些特定字符、及这些特定字符的组合,组成一个 “规则字符串”,这个“规则字符串”用来表达对字符串的 一种过滤逻辑。
cat Data/example.fa | grep 'TATA.TTT' -n #.允许错配
cat Data/example.fa | grep 'T\?ATATTT' -n #?之前出现0次或1次T
cat Data/example.fa | grep -E 'T*ATATTT' -n #-E开启正则表达式
#?和+是扩展正则,需要/,*不需要
^ 行首
$ 行尾
. 换行符之外的任意单个字符
? 匹配之前项0次或者一次
+ 匹配1次或者多次
* 匹配0次或者多次
{n} 匹配n次
{n,} 匹配至少n次
{m,n} 至少m,最多n
[] 匹配任意一个
[^] 排除字符
| 或者
cat readme.txt | grep '^T'
cat readme.txt | grep ')$'
cat readme.txt | grep 'f.ee'
cat readme.txt | grep 'f\?ee'
cat readme.txt | grep 're\+'
cat readme.txt | grep [bB]
流编辑器,一般用来对文本进行增删改查
用法:sed -options 'script' file(s)
常见参数:
-n :禁止显示所有输入内容,只显示经过sed处理的行(常用)
-e :直接在命令模式上进行 sed 的动作编辑,接要执行的一个或 者多个命令
-f :执行含有 sed 动作的文件
-r :sed 的动作支持的扩展正则(默认基础正则)
-i :直接修改读取的文件内容,不输出。
cat readme.txt | sed '1i Welcome to Biotrainee() '
cat readme.txt | sed '1a Welcome to Biotrainee() '
cat readme.txt | sed '1c Welcome to Biotrainee()
cat readme.txt | sed '/^$/d'
cat readme.txt | sed 's/is/IS/g'
cat readme.txt | sed '1 s/ee/EE/g'
cat readme.txt | sed '1~3 s/ee/EE/'
cat readme.txt | sed '/www/ s/ee/EE/'
cat readme.txt | sed 'y/abc/ABC/'
cat readme.txt | sed -n '/ee/p'
cat readme.txt | sed -n 's/ee/EE/p'
记得先增加后删除,将第2行删除再增加就找不到第2行所以不能增加
cat readme.txt | sed -e '2 a Hi!' -e '2d' #原文件的第二行后面增加Hi 删除第二行
cat readme.txt | sed 's1http:1???1'
cat readme.txt | sed '1s/ee/EE/'
cat readme.txt | sed '1~3s/ee/EE/'
md5sum -c $(cat md3 | sed '1d') #先执行括号里面的
也称 gawk,编程语言,可对文本和数据进行处理
常见参数:
-F,fields,设置字段分隔符;
用法:awk options '{script}' file
基础结构: ' {script} '
匹配结构: ' /pattern/{script} '
扩展结构: 'BEGIN{script} {script} END{script}'
zcat Data/Homo_sapiens.GRCh38.102.chromosome.Y.gff3.gz | awk '{if($3=="gene") print $0 }' |less -SN
less -S Data/example.gtf | awk '/exon/{print $5-$4+1}' | less -S
# 基本用法
less -S Data/example.gtf
less -S Data/example.gtf | cut -f 9 | less -S
less -S Data/example.gtf | awk '{print $9}' | less -S
less -S Data/example.gtf | awk '{print $9,$10}' | less -S
less -S Data/example.gtf | awk -F '\t' '{print $9}' | less -S#只把tab键作为分隔符
# 扩展结构
less -S Data/example.gtf | awk '/UTR/{print $0}' | less -S
less -S Data/example.gtf | awk 'BEGIN{print "find UTR feature"} /UTR/{print $0} END{print "end"}'
less -S Data/example.gtf | awk 'BEGIN{FS="\t"} {print $9}' | less -S
less -S Data/example.gtf | awk 'BEGIN{FS="\t"} {print NR,$9}' | less -S
# 条件和循环
less -S Data/example.gtf | awk '{if($3=="gene") {print $0} }' | less -S
less -S Data/example.gtf | awk '{if($3=="gene") {print $1,$2,$3} }' | less -S
less -S Data/example.gtf | awk '{for(i=1;i<4;i++){print $i} }' | less -S
less -S Data/example.gtf | awk '{for(i=1;i<4;i++){print $i} }' | paste - - - | less -S
# 运算和字符处理
less -S Data/example.gtf | awk '/exon/{print $5-$4}' | less -S
less -S Data/example.gtf | awk '{print $5/$4}' | less -S
less -S Data/example.gtf | awk '{print int($5/$4) }' | less -S
less -S Data/example.gtf | awk '{print int($5/$4 + 0.5) }' | less -S
less -S Data/example.gtf | awk 'BEGIN{FS="\t";OFS="\t"} {gsub("gene","Gene",$3);print $0}' | less -S
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。