前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >生信分析中linux的使用7-awk

生信分析中linux的使用7-awk

作者头像
生信菜鸟团
发布2024-07-10 16:52:09
920
发布2024-07-10 16:52:09
举报
文章被收录于专栏:生信菜鸟团

生信技能树学习笔记

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

常见参数:-F,fields,设置字段分隔符;

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

基础结构: ' {script} '

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

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

awk 在读取一行文本时,会用预定义的字段分隔符划分每个数据字段,并分配给一个变量。

➢ $0 代表整个文本行;

➢ $1 代表文本行中的第1个数据字段;

➢ ……

➢ $NF 代表文本行中的最后一个数据字段

awk 默认的字段分隔符是任意空白字符(如:空格 or 制表

符),也可以用 -F 参数自定义分隔符

示例

#先看我们文档中的第九列

#但由于awk 默认的字段分隔符是任意空白字符,所以在它取第九列时显示为:

补充:attributes 属性,必须要有以下两个值:

gene_id value: 表示坐标在基因组上的基因座的唯一的ID。

gene_id 与 value 值用空格分开,如果值为空,则表示没

有对应的基因。

transcript_id value: 预测的转录本的唯一ID。

transcript_id与value值用空格分开,空表示没有转录本

#这样也可以

#里面引号要用双引号,因为linux成对识别引号

#指定分隔符为tab键

#匹配模式

#可以自定义输出顺序

#BEGIN{主体操作前} 主题操作 END{主题操作后的操作}

awk 内置变量:

➢ FS :定义输入字段分隔符,Field Separator,同 –F

➢ RS :定义输入记录分隔符,Record Separator

➢ OFS :定义输出字段分隔符,Out Field Separator

➢ ORS :定义输出记录分隔符,Out Record Separator

➢ NF :数据文件中的字段总数,可以简单理解为列数

➢ NR :已处理的输入记录数,可以简单理解为行数

#设置OFS以定义输出字段分隔符:

cat Data/example.gtf | awk 'BEGIN{OFS=":" } {print

#使用NR来打印行号

cat Data/example.gtf | awk 'BEGIN{FS="\t"; OFS=":" } {print NR,$9}' | head -5

awk 条件和循环语句:

if:条件判断

awk ' { if (判断条件) {yes} else {no} } '

for:循环语句

awk ' { for (循环条件) {循环语句} } '

#当i=1,i<4,1+1=2,打印

awk 数学运算:

+ (加),- (减), * (乘),^ (幂)

/ (除),** (平方), % (取余)

int(x) x的整数部分,取靠近零一侧的值

log(x) x的自然对数

#awk计算外显子长度

#加一

#除法,取整数

#加0.5四舍五入

常见报错

• 找不到文件、文件不存在:No such file or directory

• 没有权限 :Permission denied

• 命令不存在 :command not found

• 搜索解决报错注意 :

• 如果答案提到用 root 用户(命令行提示符是 # ),或者提到

的解决方法用到了 apt/yum/sudo ,表明部分操作是管理员命令,

需要注意自己是否有管理员权限(大概率是没有的)

• 认清楚命令的结构:命令 + 参数 + 文件

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-07-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信菜鸟团 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档