前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux:让你效率起飞的三驾马车

Linux:让你效率起飞的三驾马车

原创
作者头像
不会写代码的医学生
修改2024-03-22 17:26:59
1110
修改2024-03-22 17:26:59
举报

grep:

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

格式:grep options pattern file

常见参数:

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

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

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

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

-r:从目录中查找pattern

-e:指定多个匹配模式

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

-i:忽略大小写

代码语言:sh
复制
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

正则表达式

是对字符串操作的一种逻辑公式,就是用事先 定义好的一些特定字符、及这些特定字符的组合,组成一个 “规则字符串”,这个“规则字符串”用来表达对字符串的 一种过滤逻辑。

代码语言:sh
复制
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开启正则表达式
#?和+是扩展正则,需要/,*不需要
代码语言:SHELL
复制
^ 行首
$ 行尾
. 换行符之外的任意单个字符
? 匹配之前项0次或者一次
+ 匹配1次或者多次
* 匹配0次或者多次
{n} 匹配n次
{n,} 匹配至少n次
{m,n} 至少m,最多n
[] 匹配任意一个
[^] 排除字符
| 或者
代码语言:sh
复制
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:

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

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

常见参数:

-n :禁止显示所有输入内容,只显示经过sed处理的行(常用)

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

-f :执行含有 sed 动作的文件

-r :sed 的动作支持的扩展正则(默认基础正则)

-i :直接修改读取的文件内容,不输出。

代码语言:sh
复制
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行所以不能增加

代码语言:sh
复制
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') #先执行括号里面的

awk:

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

常见参数:

-F,fields,设置字段分隔符;

用法:awk options '{script}' file

基础结构: ' {script} '

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

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

代码语言:sh
复制
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
代码语言:sh
复制
# 基本用法
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 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • grep:
  • 正则表达式
    • sed:
      • awk:
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档