前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux-文本编辑 awk

Linux-文本编辑 awk

原创
作者头像
用户10412487
发布2023-04-03 09:25:25
1K0
发布2023-04-03 09:25:25
举报
文章被收录于专栏:生信技能树-R生信技能树-R

awk pic1

pic1
pic1

awk '{print $9$10}'

代码语言:txt
复制
ar402 09:16:06 ~
$ less -S Data/example.gtf | awk '{print $9$10}' | head
gene_id"ENSG00000223972";
gene_id"ENSG00000223972";
gene_id"ENSG00000223972";
gene_id"ENSG00000223972";
gene_id"ENSG00000223972";
gene_id"ENSG00000223972";
gene_id"ENSG00000223972";
gene_id"ENSG00000223972";
gene_id"ENSG00000223972";
gene_id"ENSG00000223972";
Mar402 09:17:16 ~
$ less -S Data/example.gtf | awk '{print $9,$10}' | head #打逗号默认是空格不是tab键
gene_id "ENSG00000223972";
gene_id "ENSG00000223972";
gene_id "ENSG00000223972";
gene_id "ENSG00000223972";
gene_id "ENSG00000223972";
gene_id "ENSG00000223972";
gene_id "ENSG00000223972";
gene_id "ENSG00000223972";
gene_id "ENSG00000223972";
gene_id "ENSG00000223972";

awk -F '{print $9}' 指定分隔符,默认是空格

代码语言:txt
复制
$ less -S Data/example.gtf | awk -F '\t' '{print $9}' | less -S

awk ' / / {print $}' 匹配模式方便查找

代码语言:txt
复制
$ less -S Data/example.gtf | awk '/UTR/{print $0}'| less -S # 查找有UTR的行,并输出出来

Mar402 09:26:49 ~
$ less -S Data/example.gtf | awk '/UTR/{print $7,$1,$2,$3,$6}'| head #可以更改输出的顺序与cut是不一样的(cut必须按顺序提出)
+ chr1 ENSEMBL UTR .
+ chr1 ENSEMBL UTR .
+ chr1 ENSEMBL UTR .
- chr1 ENSEMBL UTR .
- chr1 ENSEMBL UTR .
+ chr1 ENSEMBL UTR .
- chr1 ENSEMBL UTR .
- chr1 ENSEMBL UTR .
- chr1 ENSEMBL UTR .
- chr1 ENSEMBL UTR .

扩展结构 三段式

代码语言:txt
复制
# 在循环开始的开头和结尾加上 find UTR 和 end (pic2)
Mar402 09:26:55 ~
$ less -S Data/example.gtf | awk 'BEGIN{print "find UTR"} /UTR/{print $3,$4,$5} END{print "end"} '| less -SN
pic2
pic2

awk 内置变量 pic3

pic3
pic3

awk 'BEGIN{OFS=":"} {print $3,$4,$5}'

代码语言:txt
复制
Mar402 09:43:19 ~
$ cat Data/example.gtf | awk '{print $3,$4,$5}' | head #原始
UTR 1737 2090
exon 1737 2090
transcript 1737 4275
gene 1737 4275
exon 1873 1920
transcript 1873 3533
exon 2042 2090
exon 2476 2560
UTR 2476 2584
exon 2476 2584

Mar402 09:42:22 ~
$ cat Data/example.gtf | awk 'BEGIN{OFS=":"} {print $3,$4,$5}' | head #用:将其分开 两个都是
UTR:1737:2090
exon:1737:2090
transcript:1737:4275
gene:1737:4275
exon:1873:1920
transcript:1873:3533
exon:2042:2090
exon:2476:2560
UTR:2476:2584
exon:2476:2584

Mar402 09:43:31 ~
cat Data/example.gtf | awk '{print $3":"$4"-"$5}' | head  #想让分隔符不一样
UTR:1737-2090
exon:1737-2090
transcript:1737-4275
gene:1737-4275
exon:1873-1920
transcript:1873-3533
exon:2042-2090
exon:2476-2560
UTR:2476-2584
exon:2476-2584

Mar402 09:48:51 ~
$ cat Data/example.gtf | awk '{print NR,$3":"$4"-"$5}' | head #加上NR列出当前是第几行
1 UTR:1737-2090
2 exon:1737-2090
3 transcript:1737-4275
4 gene:1737-4275
5 exon:1873-1920
6 transcript:1873-3533
7 exon:2042-2090
8 exon:2476-2560
9 UTR:2476-2584
10 exon:2476-2584

awk 条件和循环语句

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

代码语言:txt
复制
Mar402 12:20:29 ~ #第三列是否为gene,是的话打印一整行
$ cat Data/example.gtf | awk '{if($3=="gene"){print $0}}' | less -S

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

代码语言:txt
复制
Mar402 12:28:16 ~ #i=1时,i<4,输出$i(第一列);i++(i+1的意思)
$ less -S Data/example.gtf | awk '{for(i=1;i<4;i++){print $i}}' | less -S

awk 数学运算 pic4

pic4
pic4

例子 awk数学运算 得到外显子的长度

代码语言:txt
复制
Mar402 12:28:54 ~
$ less -S Data/example.gtf | awk '/exon/{print $5-$4}' | less -S

linux 常见符号及其含义 pic5

pic5
pic5

常见报错 pic6,7

pic6
pic6
pic7
pic7
练习3
练习3
代码语言:txt
复制
Mar402 09:13:30 ~
$ head Data/example.gtf | awk '{print $10,$12,$14}' | head | sed 's/"//g' | tr -d ';'
ENSG00000223972 ENST00000456328 protein_coding
ENSG00000223972 ENST00000456328 protein_coding
ENSG00000223972 ENST00000456328 protein_coding
ENSG00000223972 ENSG00000223972 protein_coding
ENSG00000223972 ENST00000450305 protein_coding
ENSG00000223972 ENST00000450305 protein_coding
ENSG00000223972 ENST00000450305 protein_coding
ENSG00000223972 ENST00000450305 protein_coding
ENSG00000223972 ENST00000456328 protein_coding
ENSG00000223972 ENST00000456328 protein_coding

----来自生信技能树----

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
目录
  • awk pic1
    • awk '{print $9$10}'
      • awk -F '{print $9}' 指定分隔符,默认是空格
        • awk ' / / {print $}' 匹配模式方便查找
        • 扩展结构 三段式
        • awk 内置变量 pic3
        • awk 'BEGIN{OFS=":"} {print $3,$4,$5}'
        • awk 条件和循环语句
          • if 条件判断 awk ' { if (条件判断) {yes} else {no} } '
            • for 循环语句 awk ' { if (循环条件) {循环语句} } '
            • awk 数学运算 pic4
              • 例子 awk数学运算 得到外显子的长度
              • linux 常见符号及其含义 pic5
              • 常见报错 pic6,7
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档