awk的语法来解析下一行文件

时间:2015-03-24 17:09:24

标签: awk

awk解析下一行的正确语法是什么?下一个粗体是我认为应该去的地方,但我想问问专家,因为我是初学者。谢谢。

awk 'NR==2 {split($2,a,"[_.>]");b=substr(a[4],1,length(a[4]-1));print a[2]+0,b,b,substr(a[4],length(a[4])),a[5]}' **{nextline=NR+1;next}** OFS="\t" out_position.txt > out_parse.txt

例如,如果文件中有2个条目,则第一个条目由代码解析而不是第二个。

内容:

Input Variant   Errors  Chromosomal Variant Coding Variant(s)
NM_004004.5:c.79G>A     NC_000013.10:g.20763642C>T  NM_004004.5:c.79G>A XM_005266354.1:c.79G>A  XM_005266355.1:c.79G>A  XM_005266356.1:c.79G>A
NM_004004.5:c.283G>C        NC_000013.10:g.20763438C>G  NM_004004.5:c.283G>C    XM_005266354.1:c.283G>C XM_005266355.1:c.283G>C XM_005266356.1:c.283G>C

1 个答案:

答案 0 :(得分:0)

假设您要处理除标题之外的所有行,请执行以下操作:(新行仅用于提高可读性,如果需要,可以删除它们)

awk -v OFS='\t' 'NR>1 {
       split($2,a,"[_.>]");
       b=substr(a[4],1,length(a[4]-1));
       print a[2]+0,b,b,substr(a[4],length(a[4])),a[5]
     }'  out_position.txt > out_parse.txt