Linux-文本编辑 awk
Linux 文本编辑 awk
2023-06-13 09:18:12 时间
awk pic1
awk '{print $9$10}'
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}' 指定分隔符,默认是空格
$ less -S Data/example.gtf | awk -F '\t' '{print $9}' | less -S
awk ' / / {print $}' 匹配模式方便查找
$ 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 .
扩展结构 三段式
# 在循环开始的开头和结尾加上 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
awk 内置变量 pic3
awk 'BEGIN{OFS=":"} {print $3,$4,$5}'
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} } '
Mar402 12:20:29 ~ #第三列是否为gene,是的话打印一整行
$ cat Data/example.gtf | awk '{if($3=="gene"){print $0}}' | less -S
for 循环语句 awk ' { if (循环条件) {循环语句} } '
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
例子 awk数学运算 得到外显子的长度
Mar402 12:28:54 ~
$ less -S Data/example.gtf | awk '/exon/{print $5-$4}' | less -S
linux 常见符号及其含义 pic5
常见报错 pic6,7
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
----来自生信技能树----
相关文章
- Linux内核编写_全志linux驱动写寄存器
- Linux基础:linux系统下UDP的详解
- 编辑Linux中建立文本编辑的快速指南(linux建立文本)
- Linux 下的桌面程序开发实践(linux桌面程序开发)
- Linux磁盘满:如何解决?(linux磁盘满了怎么办)
- 操作系统比较:Mac OS与Linux操作系统的异同(macos与linux)
- 编辑掌握Linux命令行文本编辑的必要之道(linux命令行文本)
- 探索Linux内的时间之谜(linux系统看时间)
- 手机搭建Linux服务器,快速享受任何地方的精准智慧(手机linux服务器)
- Linux下的强大功能: 探索新世界(linux-g)
- Linux测试面试指南:让你成功跨入IT领域(linux测试面试题)
- 解锁Linux系统:掌握登录记录安全(linux登录记录)
- 编辑器极速掌握:中文Linux文本编辑器(中文linux文本)
- 编辑器深入探索中文Linux文本编辑器(中文linux文本)
- 命令Linux终端Vi命令:解读最强文本编辑器(linux终端vi)
- 文本编辑玩转Linux终端:vi文本编辑操作技巧(linux终端vi)
- Linux终端Vi:实现终极效率的文本编辑器(linux终端vi)
- Linux系统的防火墙关闭方法(关闭linux的防火墙)
- Linux下的工作效率:提升你的码农生涯(linux效率)
- Linux文本编辑器:如何存储和保存文本文件?(linux保存文本)
- 教你如何快速搭建Linux聊天服务器,打造便捷高效的通信平台!(linux搭建聊天服务器)
- 深入剖析 Linux 中的 Awk:掌握这个强大的文本处理工具(linux中的awk)
- 25字中文文章标题:掌握Linux中的AWK命令(linux的awk命令)
- Linux下的显示器智能优化(linux显示器)
- Linux文本编辑的魅力(linux文本编辑)
- 学习Linux中AWK命令,提升技能(linux中的awk命令)
- Linux下安装KATE文本编辑器的指南(linux安装kate)
- 口脚本Linux小端口脚本编程实战(linux小端)
- 利用 Linux 掌握 awk 命令的妙用(linux命令awk)
- 深入了解Linux系统中强大的AWK功能(linux系统awk)
- 使用Linux Awk快速提取列数(linux awk 列数)
- Linux Awk 用法简介:从入门到实用(linux awk 用法)
- 如何打造专属的Linux系统(制作linux 系统)
- 如何利用Linux中的vi命令进行文本编辑(linux 中vi命令)