美文网首页
【AWK】 部分技巧

【AWK】 部分技巧

作者: Silver_42ac | 来源:发表于2019-10-14 21:26 被阅读0次

【AWK】 部分技巧

1、split

split($9,a,";");
a[0]
a[1]

a 是python 中的列表(自动根据存入数据类型,变为什么变量)

这里意思是使用分隔符 “;” ,分割第9列,分割元素存入a

可以作为列表,取相应的元素 a[0];a[1]

2、gsub

gsub("Ref","",$9);

单独一句,替换,这里是讲第9列 内容 "Ref" 替换为空字符串 "",直接在第九列$9生效

3、输入文件分隔符 FS

FS( Field Separator ) : 列分割符。决定了怎么将一行划分为几段。预设值是 空白符(空白和Tab)


awk ' FS=";" {print $1} ' 

以";",作为分隔符,输入元素

4、输出文件分隔符 OFS

awk ' OFS="\t" {print $1,$3,$4}

以tab,作为分隔符,输入元素;输出的内容是 第一、三、四列使用tab链接的字符串

5、读多个文件

(1)多文件区分读取

ARGIND :输入文件编号

awk 'ARGIND==1{ print NR }ARGIND==2{ print  FNR }' A.gff  B.fa

ARGIND==1{ do samething } 就是读 第一个参数 A.gff 时 做的操作

ARGIND==2{ do samething } 就是读 第二个参数 B.fa 时 做的操作

(2)多文件判断

NR:表示awk开始执行程序后所读取的数据行数。

FNR:awk当前读取的记录数,其变量值小于等于NR(比如当读取第二个文件时,FNR是从0开始重新计数,而NR不会)。

NR==FNR:用于在读取两个或两个以上的文件时,判断是不是在读取第一个文件。

awk ' NR==FNR{ do something }NR!=FNR{ do something }' A.gff  B.fa

当NR 等于 FNR 时就是在读取第一个文件的时候

当NR 不等于 FNR 时就是再读取第二个文件的时候

和上面 ARGIND==1 ARGIND==2 同样作用,不过这种方法只能用于两个文件;两个以上文件需要用ARGIND 进行判断

5、哈希hash (字典dict)

和python 中的 字典一个意思

awk '{ a[$1]=$2;print a[$1]}'

直接就存入变量名a 中;自动按照字典方式存入

调用只需要a[ key ]即可, 变量名,可以随意不用a也行

6、匹配判断

if($0~/^>/){do  something}

匹配的含义就是字符串中是否能找到/中的匹配内容/; 而// 中可以直接写正则表达式 表示一定规律的内容

正则表达式解释:

/^>/ 解释 :// 中的^ 三角角标 表示字符串"最前面" ; 这句话表示去匹配最前面的>大于号

结构

被匹配的字符串~/匹配内容/

~ 表示匹配

// 则用来限制匹配内容的范围

不匹配判断则是

if($0!~/^>/){do  something}

解读一个例子;进行学习

awk 'ARGIND==1{if($3~/mRNA/){split($9,a,"ID=AA_");split(a[2],b,";");if($1~/LG/){split($1,c,"LG");$2="AA_"c[2]"g"b[1]}else{split($1,c,"scaffold_");$2="AA_"c[2]"s"b[1]}; d[">AA"b[1]]=$2;line=$1"\t"$2"\t"$4"\t"$5"\tAA"b[1];print line >>"genomic.new.mod.gff" }}ARGIND==2{if($0~/^>/){$1=">"d[$1]};{print $0 >>"aoaas.pep.mod.fa"}}' aoaas.gff aoaas.pep.fa

相关文章

  • 【AWK】 部分技巧

    【AWK】 部分技巧 1、split a 是python 中的列表(自动根据存入数据类型,变为什么变量) 这里意思...

  • awk+sed+vim等技巧

    awk技巧 awk的内置变量: FS:(Input Field Separator)表示awk所认知的分隔符 OF...

  • shell对输出流的处理

    shell对输出流的处理awk介绍awk基本用法awk高级用法awk小技巧在日常计算机管理中,总会有很多数据输出到...

  • awk小技巧

    按列拆分 行-列转化需要将如下格式转换成“一个基因号对应一个 GO 号” 转化命令:awk '{gsub(/,/,...

  • awk使用技巧

    awk是我们在linux系统中处理文本的一大利器,它可以简单而方便的帮我们完成很多工作。本篇主要记录一下awk的一...

  • awk 使用技巧

    https://hui-liu.github.io/blog/awk%E4%BD%BF%E7%94%A8%E6%8...

  • 三十分钟学会AWK

    本文大部分内容翻译自我开始学习AWK时看到的一篇英文文章 AWK Tutorial ,觉得对AWK入门非常有帮助,...

  • linux之awk使用技巧

    linux之awk使用技巧 (baidu.com)[https://baijiahao.baidu.com/s?i...

  • 【shell】sed匹配关键字后偶数行插入字串的技巧

    nginx配置X-Forwarded-For时sed和awk的使用技巧 知识点: 完整脚本如下:

  • 浅析 awk 文本分析

    作用 awk 逐行读取文件,以空格为分隔符将每行切片,切开的部分再进行各种分析处理 格式 awk {option}...

网友评论

      本文标题:【AWK】 部分技巧

      本文链接:https://www.haomeiwen.com/subject/ugudmctx.html